在腾讯云部署 Node.js 后端服务有多种方式,选择哪种主要取决于你的项目规模、运维能力以及预算。
以下是三种最主流的方案,按推荐程度和适用场景排序:
方案一:云函数 (SCF) + API Gateway(Serverless 架构)
适用场景:流量波动大、无状态服务、追求极致成本(按量付费)、快速上线。
优点:无需管理服务器,自动扩缩容,按请求次数计费,运维成本最低。
缺点:冷启动延迟、执行时长限制(通常 60s-300s)、不适合长连接(如 WebSocket)。
部署步骤简述:
- 创建函数:登录腾讯云控制台 -> 云函数 SCF -> 新建函数 -> 选择 Node.js 运行环境。
- 编写代码:将你的 Node 项目代码打包上传,或直接在控制台编辑
index.js。- 入口文件需包含一个处理 HTTP 请求的函数(配合 API Gateway 使用)。
- 配置 API 网关:创建一个 API 网关实例,关联该云函数,生成公网访问域名。
- 环境变量:在函数配置中设置数据库密码、密钥等敏感信息。
适合:API 接口、定时任务、轻量级微服务。
方案二:云服务器 CVM + PM2/Nginx(传统虚拟机)
适用场景:需要完整操作系统权限、长期运行的服务、有复杂依赖、需要 WebSocket/长连接、习惯 Linux 运维。
优点:控制力最强,可自定义任何软件环境,性能稳定,支持所有 Node.js 特性。
缺点:需要自行维护系统安全、备份、更新;即使不跑业务也要付基础资源费。
详细部署流程:
1. 购买与初始化
- 在腾讯云控制台购买 CVM (云服务器),建议镜像选择 Ubuntu 20.04/22.04 LTS 或 CentOS 7/8。
- 配置安全组:放行 80/443 (HTTP/HTTPS) 和 你应用监听的端口(如 3000)。
2. 安装运行环境
通过 SSH 登录服务器,执行以下命令:
# 安装 nvm (Node Version Manager,推荐用于管理多个 Node 版本)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
# 安装最新 LTS 版 Node.js
nvm install --lts
node -v # 验证安装
# 安装 npm 包管理器 (通常随 node 自带)
npm -v
# 安装 pm2 (进程管理工具,防止服务挂掉后重启)
sudo npm install -g pm2
3. 上传代码
- 使用
git clone拉取代码到服务器,或使用scp/SFTP工具上传本地项目文件夹。 - 进入项目目录安装依赖:
cd /path/to/your/project npm install
4. 启动服务
- 开发模式测试:直接运行
node app.js(假设主文件是 app.js)。 - 生产模式 (推荐):使用 PM2 守护进程:
pm2 start app.js --name "my-node-app" pm2 save pm2 startup(注:PM2 会自动配置开机自启)
5. 反向X_X (Nginx) – 可选但推荐
为了隐藏内部端口并提供 HTTPS,建议配置 Nginx:
sudo apt update && sudo apt install nginx -y
编辑 /etc/nginx/sites-available/default,添加:
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://localhost:3000; # 替换为你的 Node 服务端口
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
重启 Nginx:sudo systemctl restart nginx。
方案三:容器服务 TKE / 轻量应用服务器
适用场景:需要 Docker 化部署、多容器编排、或者希望比 CVM 更简单的“开箱即用”体验。
- 轻量应用服务器 (Lighthouse):腾讯云的简化版 CVM,预装了常用环境,适合个人开发者或小团队。可以直接在后台选择“一键部署 Node.js”,或者像 CVM 一样手动操作。
- TKE (Kubernetes):适合大型微服务集群,通过 Dockerfile 构建镜像,推送到容器镜像仓库,再部署到集群。
💡 关键注意事项
- 域名备案:如果你使用的是 CVM 并绑定国内节点域名,必须完成 ICP 备案,否则无法解析。
- 安全组策略:务必检查腾讯云控制台的“安全组”规则,只开放必要的端口(如 80, 443),不要对全网开放 3000 等内部端口。
- 日志监控:
- 如果是 CVM,建议安装
CloudAudit或使用pm2 logs查看。 - 如果是 SCF,直接在控制台查看日志。
- 可以接入 腾讯云云监控 (CloudMonitor) 设置 CPU/内存告警。
- 如果是 CVM,建议安装
- 数据库连接:如果 Node 服务连接的是云数据库 (MySQL/Redis),请确保 CVM 和安全组都允许访问数据库的内网 IP,避免走公网导致延迟高且不安全。
总结建议
| 需求特征 | 推荐方案 |
|---|---|
| 刚起步、流量不确定、省钱 | 云函数 (SCF) |
| 标准后端、长期运行、需要 WebSocket | CVM + PM2 + Nginx |
| 个人博客/小工具、不想配太多东西 | 轻量应用服务器 |
| 企业级微服务、高可用集群 | TKE (K8s) |
如果你需要针对某种具体方案(例如如何写 Dockerfile 部署到 TKE,或者具体的 Nginx 配置模板),请告诉我,我可以提供更详细的代码示例。
云知识CLOUD