在腾讯轻量服务器上如何部署小程序的Node.js后端?

在腾讯云轻量应用服务器(Lighthouse)上部署小程序的 Node.js 后端,是一个常见且高效的方案。以下是详细的部署步骤:


✅ 一、准备工作

  1. 购买并登录轻量应用服务器

    • 登录 腾讯云控制台
    • 购买一台轻量服务器(推荐选择 Ubuntu 20.04 / 22.04 系统)
    • 获取公网 IP 和登录凭证(密码或密钥)
  2. 本地开发环境准备

    • 小程序前端代码(微信开发者工具)
    • Node.js 后端代码(Express/NestJS/Koa 等框架)
    • 域名(可选,用于 HTTPS 访问)

✅ 二、连接服务器并配置环境

1. 使用 SSH 连接服务器(Linux/Mac/Windows WSL)

ssh root@你的服务器公网IP
# 输入密码或使用私钥登录

2. 更新系统并安装必要软件

sudo apt update && sudo apt upgrade -y

3. 安装 Node.js(推荐使用 nvm)

# 安装 nvm(Node Version Manager)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

# 重新加载 shell 配置
source ~/.bashrc

# 安装 Node.js(例如 v18)
nvm install 18
nvm use 18
node -v  # 检查版本
npm -v

4. 安装 PM2(进程管理器,保持服务常驻)

npm install -g pm2

✅ 三、上传并部署 Node.js 后端代码

方法一:通过 SCP 上传代码(推荐)

在本地终端执行(非服务器):

scp -r ./your-nodejs-project root@你的IP:/root/

方法二:使用 Git 克隆

git clone https://github.com/yourname/your-nodejs-backend.git
cd your-nodejs-backend
npm install

✅ 四、启动 Node.js 服务

进入项目目录:

cd /root/your-nodejs-project
npm install  # 安装依赖

修改监听地址(重要!)

确保你的 app.jsserver.js 中监听的是 0.0.0.0,而不是 localhost127.0.0.1

app.listen(3000, '0.0.0.0', () => {
  console.log('Server running on port 3000');
});

使用 PM2 启动服务

pm2 start app.js --name "miniapp-api"

查看状态:

pm2 list
pm2 logs miniapp-api  # 查看日志

设置开机自启:

pm2 startup
pm2 save

✅ 五、配置防火墙和安全组

1. 腾讯云控制台设置安全组

  • 进入轻量服务器控制台 → 找到你的实例 → 安全组
  • 添加规则:放行你使用的端口(如 3000
    • 协议类型:TCP
    • 端口:3000
    • 源 IP:0.0.0.0/0(或限制为小程序域名 IP,更安全)

2. 服务器内部防火墙(UFW,可选)

sudo ufw allow 3000
sudo ufw enable

✅ 六、测试接口连通性

在浏览器或 Postman 中访问:

http://你的服务器IP:3000/api/test

如果返回数据,说明部署成功。


✅ 七、绑定域名 + HTTPS(推荐)

  1. 备案域名(国内服务器需备案)
  2. 解析域名到服务器 IP
  3. 使用 Nginx 反向 + SSL

安装 Nginx

sudo apt install nginx -y

配置反向(示例)

编辑配置文件:

sudo nano /etc/nginx/sites-available/default

内容示例:

server {
    listen 80;
    server_name api.yourdomain.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_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_cache_bypass $http_upgrade;
    }
}

重启 Nginx:

sudo nginx -t       # 测试配置
sudo systemctl restart nginx

免费 HTTPS(Let’s Encrypt)

使用 Certbot:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d api.yourdomain.com

之后自动配置 HTTPS。


✅ 八、小程序前端调用后端

在小程序代码中:

wx.request({
  url: 'https://api.yourdomain.com/user/info',
  method: 'GET',
  success(res) {
    console.log(res.data);
  }
})

⚠️ 注意:必须使用 HTTPS,且域名需在小程序后台「开发管理」→「开发设置」中添加到 request 合法域名。


✅ 九、后续维护建议

  • 使用 pm2 monit 监控进程
  • 定期备份代码和数据库
  • 日志分析:pm2 logs
  • 使用 GitHub Actions 自动部署(进阶)

总结

步骤 内容
1 购买轻量服务器,SSH 登录
2 安装 Node.js 和 PM2
3 上传代码并 npm install
4 PM2 启动服务,监听 0.0.0.0
5 开放安全组端口
6 可选:Nginx + 域名 + HTTPS

如有具体框架(如 Express、Koa、NestJS)或数据库(MongoDB/MySQL),可继续提问,我可以提供更详细配置。