在轻量应用服务器(如腾讯云轻量应用服务器、阿里云轻量服务器等)上部署 Node.js 服务,供微信小程序调用,是一个常见且实用的场景。以下是详细的步骤指南:
✅ 一、准备工作
-
购买并登录轻量应用服务器
- 推荐选择 Linux 系统(如 Ubuntu 20.04 / CentOS 7)
- 开放必要端口:
80(HTTP)、443(HTTPS)、3000或自定义 Node.js 端口
-
获取公网 IP 地址或绑定域名
- 小程序要求请求必须是 HTTPS 协议(开发阶段可配置不校验合法域名)
- 建议绑定备案过的域名,并申请 SSL 证书
✅ 二、安装 Node.js 和 npm
# 更新系统包
sudo apt update # Ubuntu/Debian
# 或
sudo yum update # CentOS
# 安装 Node.js(推荐使用 nvm 管理版本)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
nvm install 18 # 安装 Node.js 18 LTS
node -v && npm -v # 验证安装成功
✅ 三、上传并运行 Node.js 项目
方法 1:本地打包上传
- 使用
scp或 SFTP 工具(如 FileZilla)上传代码到服务器:scp -r ./my-node-project user@your-server-ip:/home/user/
方法 2:从 Git 克隆
git clone https://github.com/yourname/your-node-project.git
cd your-node-project
npm install
启动服务示例(app.js)
const express = require('express');
const app = express();
app.get('/api/hello', (req, res) => {
res.json({ message: 'Hello from Node.js!' });
});
const PORT = process.env.PORT || 3000;
app.listen(PORT, '0.0.0.0', () => {
console.log(`Server running on port ${PORT}`);
});
注意:监听
'0.0.0.0'而非'localhost',确保外部可访问。
✅ 四、使用 PM2 持久化运行 Node.js 服务
避免进程退出后服务停止:
npm install -g pm2
pm2 start app.js --name "my-api"
pm2 startup # 设置开机自启
pm2 save
常用命令:
pm2 status
pm2 logs my-api
pm2 restart my-api
✅ 五、配置 Nginx 反向(推荐)
1. 安装 Nginx
sudo apt install nginx # Ubuntu
sudo systemctl start nginx
sudo systemctl enable nginx
2. 配置反向(假设你的 Node.js 服务运行在 3000 端口)
编辑配置文件:
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 reload nginx
✅ 六、配置 HTTPS(小程序必需)
使用 Let’s Encrypt 免费证书
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d api.yourdomain.com
Certbot 会自动配置 SSL 并更新 Nginx 配置。
之后访问 https://api.yourdomain.com 即可通过 HTTPS 访问你的 Node.js 服务。
✅ 七、小程序中调用接口
在微信小程序中发起请求:
wx.request({
url: 'https://api.yourdomain.com/api/hello',
method: 'GET',
success(res) {
console.log(res.data);
},
fail(err) {
console.error('Request failed:', err);
}
})
⚠️ 注意:
- 必须使用 HTTPS
- 域名需在小程序管理后台「开发管理」→「开发设置」→「服务器域名」中配置
request合法域名- 开发阶段可在开发者工具中勾选“不校验合法域名”进行调试
✅ 八、安全建议
-
防火墙设置
sudo ufw allow 'Nginx Full' sudo ufw enable -
隐藏敏感信息
- 使用
.env文件管理环境变量(如数据库密码) - 不要把
.env提交到 Git
- 使用
-
定期更新系统和依赖
npm audit fix
✅ 总结流程图
轻量服务器 → 安装 Node.js → 部署代码 → PM2 托管 → Nginx 反向 → SSL 加密 → 小程序 HTTPS 调用
通过以上步骤,你就可以稳定地在轻量应用服务器上运行 Node.js 服务,并被微信小程序安全调用。
如有具体框架(如 Koa、Egg.js、Express)或数据库集成需求,也可继续扩展说明。
CLOUD技术笔记