在腾讯云部署 Node.js 后端服务有多种方案,具体选择取决于你的业务规模、运维能力和预算。以下是三种主流方案的详细对比与操作指南:
方案一:使用云服务器(CVM)+ PM2(适合自定义环境/学习/小型项目)
特点:完全控制服务器环境,灵活度高,成本低,但需自行维护系统安全。
核心步骤:
-
购买 CVM 实例
- 登录 腾讯云控制台 → 选择「云服务器」→ 创建新实例。
- 推荐配置:2 核 4G(起步),操作系统选 Ubuntu 20.04 LTS 或 CentOS 7.9。
- 安全组规则:开放 80/443(HTTP/HTTPS) 和 SSH (22) 端口。
-
安装基础环境
# SSH 登录服务器后执行 sudo apt update && sudo apt upgrade -y curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt install -y nodejs npm node -v # 验证版本 -
部署代码
- 方式 A:Git 拉取
git clone your-repo-url cd your-project npm install - 方式 B:SCP 上传本地文件到服务器
- 方式 A:Git 拉取
-
使用 PM2 管理进程
npm install pm2 -g pm2 start app.js --name "my-node-app" pm2 startup pm2 save pm2 logs✅ 优势:自动重启、日志管理、进程守护
⚠️ 注意:生产环境需配合 Nginx 反向X_X + SSL 证书(可用 Let’s Encrypt)。
方案二:云函数 SCF(Serverless,适合轻量/事件驱动场景)
特点:按调用计费、免运维、自动扩缩容,但冷启动延迟较高,不适合长连接。
适用场景:
- API 网关触发
- 定时任务(如每日清理数据)
- 低流量接口服务
操作步骤:
- 进入 SCF 控制台 → 新建函数。
- 选择运行环境:Node.js 18。
- 编写代码(示例
index.js):exports.main_handler = async (event, context) => { return { statusCode: 200, body: 'Hello from SCF!' }; }; - 配置触发器(如 HTTP API 触发器),绑定 API 网关。
- 发布并测试。
💡 提示:SCF 有免费额度(每月 100 万次请求),适合 MVP 验证。
方案三:容器服务 TKE(适合中大型/微服务架构)
特点:基于 Kubernetes,支持高可用、灰度发布、服务发现,运维复杂度较高。
快速流程:
- 创建 TKE 集群(可选托管版)。
- 将 Node 应用打包为 Docker 镜像:
FROM node:18-alpine WORKDIR /app COPY package*.json ./ RUN npm ci --only=production COPY . . EXPOSE 3000 CMD ["node", "server.js"] - 构建并推送镜像到 TCR(腾讯云容器镜像服务)。
- 在 TKE 中创建 Deployment + Service,暴露外部访问(Ingress/NLB)。
📌 关键建议
| 需求 | 推荐方案 |
|---|---|
| 个人项目/学习 | CVM + PM2 |
| 低成本 API 服务 | SCF |
| 高并发/多实例部署 | TKE |
| 需要域名+SSL | CVM + Nginx |
🔐 安全加固(无论哪种方案)
- 禁用 root 登录,改用密钥对 SSH 认证。
- 定期更新系统补丁:
apt update && apt upgrade。 - 使用
.env管理敏感信息,避免硬编码密码/API Key。 - 启用 WAF(Web 应用防火墙)防护常见攻击。
需要我提供某一种方案的完整脚本模板或Nginx 配置示例吗?
云计算