在阿里云上部署小程序的 Node.js 后端服务,是一个常见的全栈开发场景。以下是完整的流程指南,涵盖从环境准备到上线维护的全过程:
一、前期准备
1. 注册阿里云账号
- 访问 阿里云官网
- 完成实名认证
2. 购买云服务器 ECS(Elastic Compute Service)
- 进入 ECS 控制台
- 创建实例:
- 地域:选择离用户近的区域(如华北2-北京)
- 实例规格:推荐
ecs.t5-lc1m2.small(适合测试)或更高配置 - 镜像:选择 Ubuntu 20.04/22.04 LTS 或 CentOS 7+
- 系统盘:至少 40GB SSD
- 安全组:开放以下端口:
22(SSH 登录)80(HTTP)443(HTTPS)3000或自定义端口(Node.js 服务)
✅ 建议:创建密钥对登录,更安全。
二、连接服务器并初始化环境
1. 使用 SSH 登录
ssh root@<你的公网IP>
# 或使用密钥
ssh -i ~/.ssh/your-key.pem root@<公网IP>
2. 更新系统 & 安装基础工具
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git vim wget build-essential
3. 安装 Node.js(推荐使用 nvm)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
nvm install 18 # 推荐稳定版本
node -v # 检查版本
npm -v
4. 安装 PM2(进程管理器)
npm install -g pm2
三、部署 Node.js 后端代码
1. 获取代码(Git 克隆)
git clone https://github.com/yourname/miniapp-backend.git
cd miniapp-backend
npm install
2. 配置环境变量(.env 文件)
NODE_ENV=production
PORT=3000
DATABASE_URL=mysql://user:pass@localhost:3306/dbname
REDIS_HOST=127.0.0.1
WECHAT_APPID=your_appid
WECHAT_SECRET=your_secret
⚠️ 注意:不要将
.env提交到 Git,用.gitignore忽略
3. 编写启动脚本(可选 ecosystem.config.js)
module.exports = {
apps: [
{
name: 'miniapp-api',
script: './bin/www', // 或 app.js
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '1G',
env: {
NODE_ENV: 'development'
},
env_production: {
NODE_ENV: 'production'
}
}
]
};
4. 启动服务
pm2 start ecosystem.config.js --env production
# 或直接启动
pm2 start app.js --name "miniapp-api" --no-daemon
5. 设置开机自启
pm2 startup
pm2 save
四、配置反向X_X(Nginx)
1. 安装 Nginx
sudo apt install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx
2. 配置站点(/etc/nginx/sites-available/miniapp)
server {
listen 80;
server_name your-domain.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;
}
}
3. 启用配置
sudo ln -s /etc/nginx/sites-available/miniapp /etc/nginx/sites-enabled/
sudo nginx -t # 测试配置
sudo systemctl reload nginx
五、申请域名与 HTTPS(SSL 证书)
1. 购买域名
- 在阿里云「域名控制台」购买
.com或.cn域名
2. 域名解析(DNS)
- 添加 A 记录,指向 ECS 的公网 IP
3. 申请免费 SSL 证书(阿里云或 Let’s Encrypt)
方法一:阿里云证书服务
- 进入「SSL 证书」控制台 → 申请免费证书 → 绑定域名 → DNS 验证
- 下载证书(Nginx 版)
方法二:Let’s Encrypt(推荐)
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com
自动配置 HTTPS 并启用自动续期。
六、数据库部署(可选)
方案 1:使用阿里云 RDS(推荐生产)
- 创建 MySQL 实例
- 配置白名单(允许 ECS 内网访问)
- 修改后端数据库连接字符串为 RDS 内网地址
方案 2:本地安装 MySQL
sudo apt install mysql-server
sudo mysql_secure_installation
七、小程序端对接
在小程序代码中调用接口:
wx.request({
url: 'https://your-domain.com/api/login',
method: 'POST',
data: { code: '...' },
success(res) {
console.log(res.data);
}
})
✅ 注意:
- 小程序只支持 HTTPS 请求
- 域名需在「小程序管理后台」→「开发设置」→「request 合法域名」中添加
八、监控与维护
1. 查看日志
pm2 logs miniapp-api
# 或查看 Nginx 日志
tail -f /var/log/nginx/access.log
2. 监控服务状态
pm2 status
pm2 monit
3. 自动重启崩溃服务
PM2 默认已开启 autorestart
4. 定时备份数据
建议使用阿里云快照 + RDS 自动备份
九、优化建议(进阶)
| 项目 | 建议 |
|---|---|
| 性能 | 使用 Redis 缓存会话、热点数据 |
| 安全 | 开启防火墙(UFW),限制 SSH 登录 IP |
| 可靠性 | 使用负载均衡 + 多台 ECS |
| CI/CD | 配合 GitHub Actions 或 Jenkins 自动部署 |
| 日志 | 使用阿里云 SLS 日志服务集中管理 |
总结:完整流程图
注册阿里云 → 购 ECS + 域名 → SSH 登录 → 安装 Node/Nginx/PM2
↓
克隆代码 → 配置环境 → PM2 启动服务
↓
Nginx 反向X_X → 申请 SSL → 配置 HTTPS
↓
域名解析 → 小程序配置合法域名 → 联调测试
↓
上线运行 + 日志监控 + 定期维护
✅ 成功标志:
- 访问
https://your-domain.com返回正常 - 小程序能成功调用 API 接口
- 服务稳定运行,无频繁崩溃
如有具体框架(如 Express、Koa、NestJS)需求,可进一步细化部署步骤。
CDNK博客