将微信小程序后端部署到腾讯云轻量应用服务器(Lighthouse)是一个常见且高效的选择。以下是完整的部署流程,涵盖环境准备、代码上传、服务启动及域名配置等关键步骤:
一、前期准备
-
注册并购买轻量应用服务器
- 登录 腾讯云官网
- 进入「产品」→「轻量应用服务器」→ 创建实例
- 推荐配置(根据业务量选择):
- 系统镜像:Ubuntu 20.04/22.04 LTS 或 CentOS 7/8
- CPU/内存:2核4G起步(Node.js 建议≥2核)
- 带宽:5Mbps以上(若用户量大可升级)
- 地域:尽量靠近你的主要用户群(如华南区)
-
准备小程序后端代码
- 确保代码为无本地依赖的标准化项目(如 Express/Koa/NestJS + MySQL/MongoDB)
- 检查
package.json中的start脚本是否正确 - 配置好环境变量(如数据库地址、密钥等),不要硬编码敏感信息
-
开通必要云服务(可选但推荐)
- 若使用云数据库(TencentDB for MySQL/MongoDB),需单独购买并获取连接地址
- 或使用轻量服务器自带的云硬盘挂载独立数据库(不推荐生产环境)
二、连接服务器
通过 SSH 登录轻量应用服务器:
ssh root@<服务器公网IP>
# 首次登录会提示确认指纹,输入 yes
# 后续可用密码或 SSH 密钥登录
💡 提示:建议在腾讯控制台「远程连接」中设置强密码,或绑定 SSH 密钥增强安全性。
三、安装运行环境
以 Node.js + Nginx + PM2 为例(其他语言类似):
1. 更新系统 & 安装基础工具
sudo apt update && sudo apt upgrade -y
sudo apt install curl git unzip wget -y
2. 安装 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
3. 安装 PM2(进程管理器)
sudo npm install -g pm2
4. 安装 Nginx(反向X_X + HTTPS)
sudo apt install nginx -y
sudo systemctl enable nginx
sudo systemctl start nginx
5. 安装防火墙(UFW)
sudo ufw allow 'Nginx Full'
sudo ufw allow 22/tcp # SSH
sudo ufw allow 3000/tcp # 自定义端口(如 express 监听端口)
sudo ufw enable
四、上传代码并部署
方法一:Git 拉取(推荐)
cd ~
git clone <你的代码仓库地址>
cd your-backend-project
npm install
# 配置环境变量(见下方 .env 示例)
nano .env
.env 示例:
NODE_ENV=production
PORT=3000
DB_HOST=your-db-host.tencentdb.com
DB_USER=admin
DB_PASS=your_secure_password
JWT_SECRET=your_jwt_secret_key
方法二:SCP 上传本地代码
# 本地终端执行
scp -r ./backend-root user@<服务器IP>:~/your-backend-project
五、启动服务
pm2 start app.js --name "wechat-backend"
# 若入口文件是 index.js,则改为:pm2 start index.js
pm2 save
pm2 startup systemd # 生成开机自启命令,按提示执行
验证服务是否运行:
pm2 list
curl http://localhost:3000/health # 替换为你的健康检查接口
六、配置 Nginx 反向X_X与 HTTPS
1. 创建 Nginx 配置文件
sudo nano /etc/nginx/sites-available/wechat-backend
内容示例(假设你的服务监听 3000 端口):
server {
listen 80;
server_name your-domain.com www.your-domain.com;
location / {
proxy_pass http://127.0.0.1:3000;
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;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
启用配置:
sudo ln -s /etc/nginx/sites-available/wechat-backend /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
2. 申请免费 SSL 证书(Let’s Encrypt)
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your-domain.com -d www.your-domain.com
# 按提示填写邮箱,自动配置 HTTPS 并重定向 HTTP→HTTPS
✅ 完成后访问 https://your-domain.com 应能正常访问后端 API。
七、小程序端配置
在微信开发者工具中:
- 打开
project.config.json - 修改
request相关配置:"request": { "url": "https://your-domain.com/api", "timeout": 10000 } - 在微信公众平台 → 开发 → 开发设置 → 服务器域名
添加:https://your-domain.com(注意:必须是 HTTPS,且已备案!)
⚠️ 重要:未备案的域名无法在小程序中使用!
✅ 解决方案:
- 方案A:为域名完成 ICP 备案(推荐,周期约 10–20 天)
- 方案B:使用腾讯云提供的「轻量应用服务器自带域名」(如
xxx.lh.cloud.tencent.com),该域名无需备案即可用于小程序(仅限测试/非正式场景,正式上线仍建议备案主域名)
八、安全加固建议
| 措施 | 操作 |
|---|---|
| 禁用 root 登录 | 编辑 /etc/ssh/sshd_config,设 PermitRootLogin no |
| 更换默认 SSH 端口 | Port 2222(避免暴力破解) |
| 安装 fail2ban | 防止暴力攻击:sudo apt install fail2ban |
| 定期备份 | 使用 rsync 或腾讯云快照功能定时备份 |
| 限制 CORS | 在代码中只允许指定域名跨域(express-cors 中间件) |
九、监控与维护
- 查看日志:
pm2 logs wechat-backend journalctl -u nginx -f - 设置自动重启(PM2 已内置)
- 使用腾讯云「云监控」+「告警」关注 CPU/内存/带宽使用情况
需要我提供:
- 某具体框架(如 NestJS / Koa / Spring Boot)的部署模板?
- Docker 化部署方案(更利于迁移和扩展)?
- 一键部署脚本(Shell + CI/CD)?
欢迎告诉我你的技术栈,我可以为你定制详细步骤!
PHPWP博客