在阿里云上部署小程序的 Node.js 后端服务,是一个常见的全栈开发场景。以下是完整的流程,涵盖从准备到上线维护的各个关键步骤:
一、前期准备
1. 注册阿里云账号
- 访问 阿里云官网
- 注册并完成实名认证。
2. 购买云服务器 ECS
- 登录 ECS 控制台
- 创建实例:
- 地域:选择靠近用户群体的区域(如华东1/华北2)
- 实例规格:建议入门级如
ecs.t6-c1m2.small(1核2G) - 镜像:选择 Ubuntu 20.04 / CentOS 7(推荐 Ubuntu)
- 安全组:开放以下端口:
- SSH:22
- HTTP:80
- HTTPS:443
- 自定义端口(如 3000)用于 Node.js 应用
- 设置登录密码或上传密钥对(推荐使用 SSH 密钥)
二、服务器环境搭建
1. 连接服务器(SSH)
ssh root@你的公网IP
# 或使用密钥
ssh -i ~/.ssh/id_rsa root@你的公网IP
2. 更新系统 & 安装基础工具
sudo apt update && sudo apt upgrade -y # Ubuntu
# 或
sudo yum update -y # CentOS
3. 安装 Node.js 和 npm
推荐使用 NodeSource 安装较新版本(如 v18.x):
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
验证安装:
node -v
npm -v
4. 安装 PM2(进程管理器)
npm install -g pm2
5. 安装 Nginx(反向X_X & 静态资源)
sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
三、部署 Node.js 后端项目
1. 上传代码
方式一:使用 Git(推荐)
git clone https://github.com/yourname/your-node-project.git
cd your-node-project
npm install
方式二:本地打包上传(如使用 scp)
scp -r ./dist root@公网IP:/root/myapp
2. 配置启动脚本
创建 ecosystem.config.js(PM2 配置文件):
module.exports = {
apps: [
{
name: 'miniapp-api',
script: './app.js', // 入口文件
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '1G',
env: {
NODE_ENV: 'development',
PORT: 3000
},
env_production: {
NODE_ENV: 'production',
PORT: 3000
}
}
]
};
3. 使用 PM2 启动应用
pm2 start ecosystem.config.js --env production
pm2 save
pm2 startup # 设置开机自启
四、配置 Nginx 反向X_X
编辑 Nginx 配置文件:
sudo nano /etc/nginx/sites-available/default
添加如下配置(假设小程序后端监听 3000 端口):
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;
}
}
测试并重载 Nginx:
sudo nginx -t
sudo systemctl reload nginx
五、绑定域名与 SSL 证书(HTTPS)
1. 域名解析
- 在阿里云 域名控制台 添加 A 记录,指向 ECS 的公网 IP。
2. 申请免费 SSL 证书(使用阿里云或 Let’s Encrypt)
方法一:阿里云 SSL 证书服务
- 进入 SSL 证书服务
- 申请免费 DV 证书(单域名)
- 验证域名所有权(DNS 验证)
- 下载证书(Nginx 版本),上传到服务器
方法二:Let’s Encrypt(推荐自动化)
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your-domain.com
自动配置 HTTPS 并设置自动续期。
更新 Nginx 配置以支持 HTTPS:
server {
listen 443 ssl;
server_name your-domain.com;
ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;
location / {
proxy_pass http://127.0.0.1:3000;
# ... 同上
}
}
# 强制 HTTP 跳转 HTTPS
server {
listen 80;
server_name your-domain.com;
return 301 https://$host$request_uri;
}
六、数据库部署(可选)
如果需要数据库(如 MySQL / MongoDB):
方式一:使用阿里云 RDS(推荐)
- 更安全、易备份、高可用
- 创建 RDS 实例(MySQL / PostgreSQL)
- 配置白名单允许 ECS 内网访问
- 在 Node.js 中使用内网连接地址
方式二:在 ECS 上自建数据库
# 安装 MySQL
sudo apt install mysql-server -y
sudo mysql_secure_installation
七、小程序端调用配置
在小程序代码中请求后端接口时:
wx.request({
url: 'https://your-domain.com/api/user',
method: 'GET',
success(res) {
console.log(res.data);
}
});
⚠️ 注意:
- 必须使用 HTTPS
- 域名需在小程序后台「开发管理」→「开发设置」中添加到 request 合法域名
八、监控与维护
1. 日志查看
pm2 logs miniapp-api
# 或查看 Nginx 日志
tail -f /var/log/nginx/error.log
2. 自动重启与健康检查
- PM2 已提供自动重启
- 可结合阿里云 云监控 设置报警
3. 定期备份
- 数据库定期备份(RDS 自带)
- 代码和配置文件备份至 OSS 或 GitHub
九、优化建议
- 使用 CDN 提速静态资源
- 开启 Gzip 压缩(Nginx 配置)
- 使用 Redis 缓存高频数据
- 配置 CORS(如需跨域调试)
总结:完整流程图
注册阿里云 → 购 ECS → 配置安全组 → SSH 登录
↓
安装 Node.js + PM2 + Nginx
↓
上传代码 → PM2 启动
↓
配置 Nginx 反向X_X
↓
绑定域名 + SSL 证书(HTTPS)
↓
小程序配置合法域名 → 调用接口
↓
监控 + 备份 + 维护
✅ 成功标志:
- 访问
https://your-domain.com返回 API 正常响应 - 小程序能成功调用接口且无报错
如有需要,可以进一步使用 Serverless(函数计算 FC) 或 容器服务(ACK) 实现更高级部署,但 ECS 是最简单直接的方式。
如果你提供具体的技术栈(如 Express/Koa/NestJS),我可以给出更详细的配置示例。
CLOUD技术博