在阿里云上部署小程序的 Node.js 后端服务,是一个典型的 Web 服务上线流程。以下是完整的、从零开始的部署流程,适用于大多数基于 Express、Koa 等框架的小程序后端。
✅ 一、准备工作
1. 注册阿里云账号
- 访问 https://www.aliyun.com
- 完成实名认证
2. 购买云服务器 ECS(Elastic Compute Service)
- 推荐配置:
ecs.s6-c1m2.small(1核2G)起步,适合开发测试 - 操作系统:推荐 Ubuntu 20.04/22.04 LTS 或 CentOS 7+
- 安全组:开放以下端口:
22(SSH 登录)80(HTTP)443(HTTPS)3000或你自定义的 Node.js 端口(可选,建议用 Nginx 反向X_X)
💡 建议使用密钥对登录,更安全。
✅ 二、连接服务器并配置环境
1. 使用 SSH 连接服务器
ssh root@你的公网IP
# 如果使用密钥
ssh -i ~/.ssh/your-key.pem root@你的公网IP
2. 更新系统包
sudo apt update && sudo apt upgrade -y # Ubuntu
# 或
sudo yum update -y # CentOS
3. 安装 Node.js 和 npm
推荐使用 nvm 安装指定版本(如 v18.x)
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
✅ 三、上传和部署代码
方法一:Git 克隆(推荐)
-
在服务器上克隆你的项目代码:
git clone https://github.com/yourname/your-node-project.git cd your-node-project -
安装依赖:
npm install
方法二:本地打包上传(使用 SCP)
# 本地打包并上传
tar -czf project.tar.gz src package.json app.js ecosystem.config.js
scp project.tar.gz root@你的IP:/root/myapp
在服务器解压:
tar -xzf project.tar.gz
npm install
✅ 四、配置启动脚本(PM2)
创建 ecosystem.config.js 文件:
module.exports = {
apps: [
{
name: 'miniapp-backend',
script: 'app.js', // 或 server.js
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '1G',
env: {
NODE_ENV: 'development',
PORT: 3000
},
env_production: {
NODE_ENV: 'production',
PORT: 3000
}
}
]
};
启动服务:
pm2 start ecosystem.config.js --env production
设置开机自启:
pm2 startup
pm2 save
查看状态:
pm2 status
pm2 logs
✅ 五、配置域名与 HTTPS(Nginx 反向X_X)
1. 安装 Nginx
sudo apt install nginx -y # Ubuntu
# 或
sudo yum install nginx -y # CentOS
启动并设置开机自启:
sudo systemctl enable nginx
sudo systemctl start nginx
2. 配置反向X_X
编辑配置文件:
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
3. 申请免费 SSL 证书(HTTPS)
使用 Let’s Encrypt + Certbot
安装 Certbot:
sudo apt install certbot python3-certbot-nginx -y
申请证书(需已备案域名):
sudo certbot --nginx -d api.yourdomain.com
Certbot 会自动修改 Nginx 配置启用 HTTPS,并自动续期。
✅ 六、数据库配置(如 MongoDB / MySQL)
示例:使用阿里云 RDS(推荐)
- 购买 RDS 实例(MySQL/MongoDB)
- 设置白名单允许 ECS 内网访问
- 在 Node.js 中使用内网地址连接数据库,更安全高效
// config/db.js
module.exports = {
dbURI: 'mongodb://username:password@内网地址:27017/yourdb'
}
🔐 不要把数据库密码写死在代码中,使用环境变量!
✅ 七、环境变量管理
使用 .env 文件(配合 dotenv 包):
# .env.production
NODE_ENV=production
PORT=3000
DB_URI=mongodb://...
SECRET_KEY=your-secret-key
在 PM2 配置中加载:
env_production: {
NODE_ENV: 'production',
PORT: 3000,
DB_URI: 'mongodb://...',
}
✅ 八、小程序端调用 API
确保小程序 request 域名已配置到 request合法域名(需 HTTPS):
wx.request({
url: 'https://api.yourdomain.com/user/info',
success(res) {
console.log(res.data)
}
})
⚠️ 注意:必须备案 + HTTPS 才能上线使用。
✅ 九、监控与维护
- 使用
pm2 monit查看进程状态 - 日志:
pm2 logs - 定时备份数据库和代码
- 使用阿里云云监控设置报警
✅ 十、可选优化
| 优化项 | 说明 |
|---|---|
| 使用 CDN | 静态资源提速 |
| 阿里云日志服务 SLS | 集中管理日志 |
| 云防火墙 | 增强安全防护 |
| 自动化部署 | 配合 GitHub Actions / Jenkins |
📌 总结:完整流程图
注册阿里云 → 购买 ECS → 安装 Node.js/PM2/Nginx
↓
上传代码 → 安装依赖 → PM2 启动
↓
配置域名 → Nginx 反向X_X → 申请 SSL 证书
↓
连接数据库(RDS)→ 小程序调用 HTTPS API
↓
监控 + 备份 + 安全加固
如有具体技术栈(如 Express/Koa/NestJS)、是否使用 Serverless(函数计算 FC),也可以进一步优化部署方式。欢迎继续提问!
CLOUD云枢