在腾讯云部署 Node.js 后端服务,主要有以下几种主流方案,你可以根据项目规模、运维能力和预算选择最适合的一种:
方案一:使用云服务器 (CVM) + PM2(最灵活,适合全栈/学习)
这是最传统也最通用的方式。你拥有一台完整的 Linux 服务器,可以完全控制环境。
核心步骤:
- 购买与初始化:
- 在腾讯云控制台购买一台 CVM(推荐 Ubuntu 20.04/22.04 或 CentOS 7/8)。
- 配置安全组:开放 22 (SSH), 80 (HTTP), 443 (HTTPS),以及你的 Node 服务端口(如
3000)。
-
安装环境:
# 更新系统 sudo apt update && sudo apt upgrade -y # 安装 Node.js (推荐使用 nvm 管理版本) curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash source ~/.bashrc nvm install --lts node -v npm -v - 上传代码:
- 使用
git clone拉取代码,或通过scp/SFTP工具上传本地代码到服务器。
- 使用
- 安装依赖并启动:
cd /path/to/your/project npm install # 生产环境建议安装 pm2 用于进程管理 npm install -g pm2 pm2 start app.js --name "my-node-app" pm2 save pm2 startup - 配置反向X_X (Nginx):
- 直接暴露 Node 端口不安全且难以管理 HTTPS。建议安装 Nginx 做反向X_X。
- 配置
nginx.conf将域名流量转发到localhost:3000。 - 配合 Let’s Encrypt 申请免费 SSL 证书。
方案二:云函数 SCF (Serverless,适合事件驱动/低成本)
如果你不需要常驻内存,或者希望按量付费(免运维),SCF 是最佳选择。Node.js 是 SCF 的首选语言之一。
核心步骤:
- 准备代码:
- 将代码打包为
.zip文件。 - 确保入口文件(Entry Point)符合规范(例如
index.handler)。 - 注意:SCF 有冷启动时间和最大运行时长限制(通常 10 分钟以内)。
- 将代码打包为
- 创建函数:
- 在腾讯云控制台进入“云函数 SCF" -> “创建函数”。
- 选择运行时:Node.js 18.x 或 20.x。
- 上传代码包。
- 配置触发器:
- 添加 API 网关 (API Gateway) 触发器,将 HTTP 请求映射到函数。
- 配置 API 网关的路由规则(方法、路径)。
- 环境变量:
- 在函数配置中设置数据库连接串、密钥等环境变量,不要硬编码在代码里。
优点:无需买服务器,按调用次数计费,弹性伸缩极强。
缺点:不适合长连接(WebSocket)、长时间运行的任务,冷启动可能有延迟。
方案三:容器服务 TKE 或 轻量应用服务器 (Lighthouse)
- TKE (Kubernetes):适合微服务架构、多实例部署、需要复杂编排的场景。通过 Dockerfile 构建镜像,部署到集群。
- 轻量应用服务器 (Lighthouse):类似 CVM,但更便宜、预装环境更友好(一键部署 Node.js),适合中小型个人项目或初创团队。操作逻辑与 CVM 类似,但网络带宽通常更划算。
关键注意事项
- 数据库连接:
- 如果数据库在本地,必须开启公网访问(不推荐,不安全)。
- 推荐:使用腾讯云 云数据库 MySQL/MongoDB。在 CVM 的安全组中允许访问云数据库的内网 IP,这样速度更快且更安全。
- 域名与 DNS:
- 购买域名后,在腾讯云 DNSPod 解析 A 记录指向你的服务器公网 IP。
- 如果是 HTTPS,务必在 Nginx 或 API 网关配置证书。
- 日志监控:
- 利用腾讯云 可观测平台 (Cloud Monitor) 或 日志服务 (CLS) 收集服务器和应用的日志,便于排查问题。
- 备份:
- 定期给数据库做快照备份。
- 代码建议托管在 GitHub/Gitee 仓库,方便回滚。
快速决策建议
| 你的场景 | 推荐方案 | 理由 |
|---|---|---|
| 学习/测试/小型个人项目 | 轻量应用服务器 (Lighthouse) | 成本低,操作简单,自带环境。 |
| 标准 Web 应用/需要长期运行 | CVM + PM2 + Nginx | 控制力最强,生态最成熟,适合大多数情况。 |
| 高并发/API 接口/无状态服务 | SCF + API 网关 | 零运维,自动扩容,按量付费成本极低。 |
| 微服务/复杂架构 | TKE (K8s) | 企业级稳定性,支持灰度发布、滚动更新。 |
你需要我针对其中某一种方案提供详细的命令行操作指南或Dockerfile 编写示例吗?
云服务器