在轻量服务器上搭建微信小程序的 Node.js 后端是一个常见且实用的需求。以下是详细的步骤指南,帮助你从零开始完成部署。
🌐 一、准备工作
1. 购买并配置轻量服务器
- 推荐使用:腾讯云轻量应用服务器(Tencent Cloud Lighthouse)、阿里云轻量服务器等。
- 操作系统建议:Ubuntu 20.04 / 22.04 LTS(稳定、社区支持好)。
- 配置建议:至少 1核2G 内存,带宽 1Mbps 以上(适合初期开发)。
2. 获取公网 IP 和域名(可选)
- 如果没有域名,可以直接用 IP 访问。
- 建议绑定域名 + HTTPS(微信要求合法域名必须是 HTTPS)。
🔧 二、服务器环境搭建
1. 登录服务器(使用 SSH)
ssh root@你的服务器IP
2. 更新系统并安装基础软件
sudo apt update && sudo apt upgrade -y
sudo apt install curl wget git nginx -y
3. 安装 Node.js 和 npm
推荐使用 NodeSource 安装较新版本(如 v18 或 v20):
# 添加 NodeSource 仓库(以 Node.js 18 为例)
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
# 安装 Node.js
sudo apt-get install -y nodejs
# 验证安装
node -v # 应输出 v18.x.x
npm -v # 应输出版本号
💻 三、创建 Node.js 后端项目
1. 创建项目目录
mkdir /var/www/my-wx-backend
cd /var/www/my-wx-backend
2. 初始化项目
npm init -y
npm install express cors dotenv axios mongoose # 根据需要选择库
常用库说明:
express: Web 框架cors: 处理跨域dotenv: 管理环境变量axios: 发送 HTTP 请求(如调用微信接口)mongoose: MongoDB 数据库连接(可选)
3. 编写简单后端服务(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/user', (req, res) => {
res.json({ message: 'Hello from WeChat Mini Program!', data: { id: 1, name: 'test' } });
});
// 微信登录示例(需调用微信接口)
app.post('/api/login', async (req, res) => {
const { code } = req.body;
const appId = process.env.WX_APPID;
const secret = process.env.WX_SECRET;
try {
const response = await require('axios').get(
`https://api.weixin.qq.com/sns/jscode2session`,
{
params: {
appid: appId,
secret: secret,
js_code: code,
grant_type: 'authorization_code'
}
}
);
res.json(response.data);
} catch (error) {
res.status(500).json({ error: 'Login failed' });
}
});
app.listen(PORT, '0.0.0.0', () => {
console.log(`Server is running on http://0.0.0.0:${PORT}`);
});
4. 创建 .env 文件保存敏感信息
nano .env
内容:
WX_APPID=your_appid
WX_SECRET=your_secret_key
PORT=3000
🚀 四、启动服务并保持运行
方法一:使用 PM2(推荐)
PM2 是 Node.js 进程管理工具,可实现后台运行和自动重启。
1. 安装 PM2
npm install -g pm2
2. 启动应用
pm2 start app.js --name wx-backend
3. 设置开机自启
pm2 startup
pm2 save
4. 常用命令
pm2 status
pm2 logs wx-backend
pm2 restart wx-backend
pm2 stop wx-backend
🔒 五、配置 Nginx 反向(支持 HTTPS)
1. 配置 Nginx(假设你有域名)
sudo nano /etc/nginx/sites-available/wx-backend
内容:
server {
listen 80;
server_name 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/wx-backend /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
2. 使用 Certbot 配置 HTTPS(免费 SSL)
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d yourdomain.com
之后访问 https://yourdomain.com/api/user 即可。
📱 六、微信小程序端调用
在微信开发者工具中,修改 request 请求地址:
wx.request({
url: 'https://yourdomain.com/api/user',
method: 'GET',
success(res) {
console.log(res.data);
}
})
⚠️ 注意:
- 必须使用 HTTPS。
- 域名需在【微信公众平台】>【开发管理】>【开发设置】中添加到「request 合法域名」列表。
✅ 七、安全与优化建议
| 项目 | 建议 |
|---|---|
| 防火墙 | 开放 80/443 端口,关闭其他无关端口 |
| 数据库 | 如使用 MongoDB,建议使用 Atlas 或本地安装并加固 |
| 日志监控 | 使用 pm2 logs 或结合日志文件分析 |
| 备份 | 定期备份代码和数据库 |
| API 安全 | 验证 token、防止暴力请求 |
🧩 总结:完整流程
- 购买轻量服务器 → 2. 安装 Node.js → 3. 编写 Express 后端
→ 4. 使用 PM2 启动 → 5. Nginx 反向 + HTTPS → 6. 小程序调用
如果你希望我提供一个完整的 GitHub 项目模板(含微信登录、数据库集成等),也可以告诉我,我可以帮你生成。
祝你部署顺利!🚀
CLOUD技术笔记