在腾讯轻量应用服务器(Lighthouse)上部署 Node.js 后端以支撑小程序,核心逻辑与在普通云服务器上无异,但需充分利用轻量服务器的“一键镜像”和“防火墙配置”特性来简化流程。
以下是基于生产环境标准的实操步骤:
1. 实例准备与环境初始化
登录腾讯云控制台,创建或选择一台轻量应用服务器。
- 操作系统:推荐选择 Ubuntu 20.04/22.04 LTS 或 CentOS 7/8。两者稳定性好,社区文档丰富。
- 软件镜像:如果希望快速启动,可直接在创建时选择"Node.js"相关的预装镜像;若追求纯净环境,建议选择“基础版”系统镜像,手动安装依赖。
- 网络规划:确保服务器已绑定公网 IP,且安全组规则已开放必要端口(如 3000、80、443)。
通过 SSH 连接服务器后,执行以下命令更新源并安装基础工具:
# Ubuntu 示例
sudo apt update && sudo apt upgrade -y
sudo apt install git curl wget -y
# CentOS 示例
sudo yum update -y
sudo yum install git curl wget -y
2. 安装 Node.js 运行环境
虽然系统自带 Node.js,但版本通常较旧,建议安装长期支持版(LTS)。推荐使用 nvm (Node Version Manager) 进行版本管理,避免污染系统环境。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc # 使环境变量生效
nvm install --lts
node -v # 验证版本
npm -v # 验证 npm 版本
此时,你的服务器已具备运行现代 Node.js 应用的能力。
3. 代码部署与依赖安装
将本地开发好的小程序后端代码上传至服务器。推荐使用 Git 拉取,或使用 SCP/SFTP 工具上传压缩包。
git clone <你的仓库地址>
cd your-project-folder
# 安装依赖
npm install
# 注意:生产环境建议使用 npm ci 或 yarn install --frozen-lockfile 以确保依赖一致性
关键检查点:
- 确认
.env配置文件中的数据库连接串、Secret Key 等敏感信息已正确配置(切勿将密钥硬编码在代码中提交到 Git)。 - 检查
package.json中的start脚本是否正确指向入口文件。
4. 进程守护与反向X_X(核心步骤)
Node.js 应用在终端退出后会停止运行,因此必须使用进程守护工具。同时,为了规范端口访问(小程序请求通常需要 HTTPS),需要配置 Nginx 作为反向X_X。
A. 安装 PM2 进程管理器
PM2 是 Node.js 生态中最流行的进程守护工具。
sudo npm install -g pm2
pm2 start app.js --name "wechat-backend"
pm2 save
pm2 startup
注:app.js 请替换为你实际的入口文件名。pm2 startup 输出的命令需在终端执行一次,以实现开机自启。
B. 安装并配置 Nginx
轻量服务器通常没有预装 Nginx,需手动安装:
sudo apt install nginx -y # Ubuntu
# 或
sudo yum install nginx -y # CentOS
编辑 Nginx 配置文件(通常在 /etc/nginx/sites-available/default 或 /etc/nginx/conf.d/your-domain.conf):
server {
listen 80;
server_name your_domain.com; # 替换为你的域名
location / {
proxy_pass http://127.0.0.1:3000; # 转发到 Node.js 端口
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;
# 允许微信接口回调的大包传输
client_max_body_size 50M;
}
}
保存后测试配置并重启服务:
sudo nginx -t
sudo systemctl restart nginx
C. 申请 SSL 证书(HTTPS)
微信小程序强制要求接口为 HTTPS。可使用 Let’s Encrypt 的 Certbot 免费申请证书。
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your_domain.com
Certbot 会自动修改 Nginx 配置并开启 HTTPS,同时设置自动续期。
5. 安全组与防火墙配置
这是轻量服务器最容易出问题的环节。
-
云控制台安全组:
- 进入腾讯云轻量服务器详情页 -> “安全组”。
- 添加入站规则:
- TCP 80 (HTTP)
- TCP 443 (HTTPS)
- TCP 3000 (可选,仅用于内网调试,对外建议不开放,由 Nginx X_X)
- TCP 22 (SSH,建议限制特定 IP 访问)
-
系统内部防火墙:
- 如果是 Ubuntu (UFW):
sudo ufw allow 80,443/tcp - 如果是 CentOS (Firewalld):
sudo firewall-cmd --permanent --add-service=http及https,然后firewall-cmd --reload。
- 如果是 Ubuntu (UFW):
6. 小程序端配置
最后,在微信公众平台后台进行配置:
- 服务器域名:在“开发管理” -> “开发设置”中,添加你在 Nginx 配置的域名(如
https://api.yourdomain.com)。 - 业务域名:同样需要在后台备案并校验该域名。
- IP 白名单:如果后端有额外的 IP 限制策略,确保轻量服务器的公网 IP 未被误封。
总结与建议
在轻量服务器上部署 Node.js 后端,关键在于PM2 保活、Nginx 反向X_X以及HTTPS 证书配置。
对于生产环境,建议额外关注以下几点:
- 日志监控:配置 PM2 的日志轮转,防止磁盘被日志写满。
- 数据持久化:如果使用 MongoDB 或 MySQL,轻量服务器默认的数据盘空间有限。对于高并发场景,建议购买独立的云数据库(TencentDB for MongoDB/MySQL),通过内网连接,既提升性能又保障数据安全。
- 定期备份:利用腾讯云自带的快照功能,对系统盘和数据盘设置定时快照策略。
按照上述流程操作,即可构建一个稳定、合规的小程序后端服务环境。
CLOUD云枢