在轻量服务器上搭建微信小程序的 Node.js 后端是一个常见且实用的需求。以下是详细的步骤,帮助你从零开始完成部署:
✅ 一、准备工作
1. 购买并登录轻量服务器
- 推荐使用腾讯云轻量应用服务器(Lighthouse)、阿里云轻量服务器等。
- 操作系统建议选择 Ubuntu 20.04/22.04 或 CentOS 7+。
2. 获取服务器公网 IP 和 SSH 登录权限
- 使用 SSH 工具(如:Xshell、Termius、或本地终端)连接服务器:
ssh root@你的服务器IP
✅ 二、安装 Node.js 环境
方法一:使用 nvm(推荐)
# 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# 重新加载配置
source ~/.bashrc
# 安装最新 LTS 版本的 Node.js
nvm install --lts
# 验证安装
node -v
npm -v
方法二:直接下载二进制包(备选)
# 下载 Node.js
wget https://nodejs.org/dist/v18.17.0/node-v18.17.0-linux-x64.tar.xz
tar -xf node-v18.17.0-linux-x64.tar.xz
mv node-v18.17.0-linux-x64 /usr/local/nodejs
# 添加环境变量
echo 'export PATH=/usr/local/nodejs/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
✅ 三、创建 Node.js 后端项目
1. 创建项目目录
mkdir /opt/wechat-backend
cd /opt/wechat-backend
npm init -y
2. 安装依赖(Express 示例)
npm install express cors body-parser dotenv
3. 编写简单后端服务 app.js
const express = require('express');
const cors = require('cors');
const app = express();
const PORT = process.env.PORT || 3000;
app.use(cors());
app.use(express.json());
// 测试接口
app.get('/api/hello', (req, res) => {
res.json({ message: 'Hello from WeChat Mini Program!' });
});
// 微信登录示例(需配合 wx.login())
app.post('/api/login', (req, res) => {
const { code } = req.body;
// 这里调用微信接口换取 openid(需要 appId 和 appSecret)
res.json({ code, msg: 'Login endpoint received code' });
});
app.listen(PORT, '0.0.0.0', () => {
console.log(`Server running on http://0.0.0.0:${PORT}`);
});
✅ 四、运行项目(使用 PM2 守护进程)
1. 全局安装 PM2
npm install -g pm2
2. 启动项目
pm2 start app.js --name wechat-api
3. 设置开机自启
pm2 startup
pm2 save
✅ 五、配置 Nginx 反向X_X(可选但推荐)
1. 安装 Nginx
sudo apt update
sudo apt install nginx -y
2. 配置站点(假设域名是 api.yourdomain.com)
编辑配置文件:
sudo nano /etc/nginx/sites-available/wechat-api
内容如下:
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;
}
}
启用站点:
sudo ln -s /etc/nginx/sites-available/wechat-api /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
🌐 若没有域名,可直接用 IP + 端口访问(如:
http://服务器IP:3000/api/hello)
✅ 六、配置防火墙和安全组
1. 开放端口(如 3000 或 80)
- 腾讯云/阿里云控制台 → 安全组 → 添加规则:
- 协议:TCP
- 端口:3000 或 80
- 源 IP:0.0.0.0/0(或限制为微信服务器 IP 段,见下方)
2. 服务器本地防火墙(UFW)
sudo ufw allow 80
sudo ufw allow 3000
sudo ufw enable
✅ 七、微信小程序前端调用示例
在小程序 pages/index/index.js 中:
wx.request({
url: 'https://api.yourdomain.com/api/hello',
method: 'GET',
success(res) {
console.log(res.data);
},
fail(err) {
console.error(err);
}
});
⚠️ 注意:微信要求 HTTPS 请求(生产环境必须使用 HTTPS)
✅ 八、申请 SSL 证书(HTTPS)
使用 Let's Encrypt 免费证书(需有域名):
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d api.yourdomain.com
之后 Nginx 会自动配置 HTTPS,重启生效。
✅ 九、后续优化建议
| 项目 | 建议 |
|---|---|
| 数据库 | 添加 MongoDB / MySQL / PostgreSQL |
| 环境变量 | 使用 .env 文件管理密钥 |
| 日志 | 使用 pm2 logs 或 Winston 记录日志 |
| 接口安全 | 校验来源、限流、JWT 认证等 |
| 监控 | 使用 pm2 monit 查看资源占用 |
✅ 总结流程图
购买轻量服务器 → SSH 登录 → 安装 Node.js → 创建项目 → PM2 运行
↓
配置 Nginx → 开放端口 → 绑定域名 → 申请 SSL → 小程序调用
如有需要,我可以提供完整的 GitHub 项目模板或集成微信登录逻辑的代码。欢迎继续提问!
CLOUD云计算