在轻量服务器(如腾讯云轻量应用服务器、阿里云ECS突发性能实例等)上搭建微信小程序的 Node.js 后端,是一个常见且实用的需求。以下是详细的步骤指南:
一、准备工作
1. 购买并配置轻量服务器
- 推荐系统:Ubuntu 20.04 / 22.04 LTS(64位)
- 最低配置:1核CPU、1GB内存、25GB SSD(适合小型项目)
- 开放端口:
22:SSH 远程登录80:HTTP443:HTTPS3000或其它自定义端口(Node.js服务)
可通过控制台安全组或防火墙设置开放这些端口。
二、连接服务器并安装基础环境
# 使用 SSH 登录(替换为你的服务器公网IP)
ssh root@your-server-ip
1. 更新系统包
sudo apt update && sudo apt upgrade -y
2. 安装 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
# 安装最新LTS版本的 Node.js(如 v18.x)
nvm install --lts
# 检查是否安装成功
node -v
npm -v
三、创建并部署 Node.js 后端服务
1. 创建项目目录
mkdir /var/www/my-weapp-backend
cd /var/www/my-weapp-backend
2. 初始化项目
npm init -y
npm install express mongoose cors dotenv axios # 示例依赖
3. 创建简单 Express 服务示例(app.js)
// app.js
const express = require('express');
const cors = require('cors');
require('dotenv').config();
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 backend!' });
});
// 微信登录示例接口(伪代码)
app.post('/api/login', async (req, res) => {
const { code } = req.body;
// 调用微信接口换取 openid 和 session_key
const tokenUrl = `https://api.weixin.qq.com/sns/jscode2session?appid=YOUR_APPID&secret=YOUR_SECRET&js_code=${code}&grant_type=authorization_code`;
try {
const response = await axios.get(tokenUrl);
res.json(response.data);
} catch (error) {
res.status(500).json({ error: 'WeChat API error' });
}
});
app.listen(PORT, '0.0.0.0', () => {
console.log(`Server is running on http://0.0.0.0:${PORT}`);
});
⚠️ 注意:
YOUR_APPID和YOUR_SECRET替换为你的小程序实际信息。
4. 创建 .env 文件保存敏感信息
PORT=3000
WECHAT_APPID=your-appid
WECHAT_SECRET=your-secret
四、使用 PM2 守护进程运行 Node.js 应用
防止服务崩溃或断开 SSH 后停止。
1. 安装 PM2
npm install -g pm2
2. 启动应用
pm2 start app.js --name "weapp-backend"
3. 设置开机自启
pm2 startup
pm2 save
4. 常用命令
pm2 status
pm2 logs
pm2 restart weapp-backend
pm2 stop weapp-backend
五、配置 Nginx 反向X_X(可选但推荐)
用于隐藏端口、支持 HTTPS、提高安全性。
1. 安装 Nginx
sudo apt install nginx -y
2. 配置站点(假设域名为 api.yourdomain.com)
编辑配置文件:
sudo nano /etc/nginx/sites-available/weapp
内容如下:
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/weapp /etc/nginx/sites-enabled/
sudo nginx -t # 测试配置
sudo systemctl reload nginx
3. (可选)申请免费 HTTPS 证书(Let’s Encrypt)
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d api.yourdomain.com
之后 Nginx 会自动配置 HTTPS。
六、小程序前端调用后端
在微信小程序中请求接口:
// pages/index/index.js
wx.request({
url: 'https://api.yourdomain.com/api/hello',
method: 'GET',
success(res) {
console.log(res.data);
}
})
✅ 确保在 小程序管理后台 的「开发设置」中添加
request合法域名:https://api.yourdomain.com
七、安全建议
- 不要暴露敏感信息:
.env不要提交到 Git。 - 使用 HTTPS:微信要求所有网络请求必须是 HTTPS。
- 限制 IP 或加 Token 验证:防止接口被滥用。
- 定期备份数据:尤其是数据库。
八、扩展功能(可选)
- 使用 MongoDB / MySQL 存储用户数据
- 添加 JWT 身份验证
- 日志记录(winston / morgan)
- 使用 Docker 容器化部署
总结
| 步骤 | 内容 |
|---|---|
| 1 | 购买并配置轻量服务器 |
| 2 | 安装 Node.js 和 PM2 |
| 3 | 编写 Express 后端接口 |
| 4 | 使用 PM2 守护进程运行 |
| 5 | 配置 Nginx + HTTPS |
| 6 | 小程序调用后端接口 |
✅ 完成以上步骤后,你的微信小程序就可以通过 HTTPS 安全地访问部署在轻量服务器上的 Node.js 后端了!
如有需要,我可以提供完整的 GitHub 示例项目结构或 Docker 部署方案。
云计算导航