在阿里云 Linux 服务器上部署 Node.js 小程序后端,通常包含以下关键步骤。以下以 Ubuntu 20.04/22.04 或 CentOS 7/8 为例(阿里云 ECS 默认镜像多为 Ubuntu/CentOS),假设你已购买并登录服务器:
✅ 一、基础环境准备
1. 连接服务器
ssh root@<你的服务器公网IP>
# 或使用密钥登录
ssh -i /path/to/key.pem root@<公网IP>
2. 更新系统 & 安装必要工具
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
sudo apt install curl git wget -y
# CentOS/RHEL
sudo yum update -y
sudo yum install curl git wget -y
3. 安装 Node.js(推荐 LTS 版本)
使用 NodeSource 官方源确保版本较新:
Ubuntu/Debian(以 Node.js 20.x 为例):
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
node -v # 应输出 v20.x.x
npm -v # 应输出对应 npm 版本
CentOS/RHEL:
curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash -
sudo yum install -y nodejs
node -v
npm -v
💡 若需特定版本(如 18.x),将
setup_20.x改为setup_18.x即可。
✅ 二、项目部署准备
1. 上传代码到服务器
方式一:Git 拉取(推荐)
git clone https://github.com/your-username/your-miniapp-backend.git
cd your-miniapp-backend
方式二:SCP 上传本地项目
scp -r ./your-project-folder/* root@<服务器IP>:/root/your-project
2. 安装依赖
npm install --production # 生产环境只装 prod 依赖
# 或
npm ci # 若有 package-lock.json,更稳定
3. 配置环境变量(关键!)
创建 .env 文件(切勿提交到 Git):
NODE_ENV=production
PORT=3000
DB_HOST=localhost
DB_USER=admin
DB_PASS=your_secure_password
JWT_SECRET=your_random_secret_key_here
APP_ID=wx1234567890abcdef # 微信小程序 AppID
APP_SECRET=your_app_secret
🔐 安全建议:
- 敏感信息用阿里云 KMS 或 Secrets Manager 管理更佳
- 设置
.env权限:chmod 600 .env
✅ 三、启动服务(推荐 PM2 进程守护)
1. 安装 PM2
npm install -g pm2
pm2 startup # 生成 systemd 命令(按提示执行)
2. 启动应用
pm2 start app.js --name miniapp-backend
# 或指定入口文件(如 server.js / index.js)
pm2 start server.js --name miniapp-backend
# 查看状态
pm2 list
pm2 logs miniapp-backend
3. 保存进程列表(开机自启)
pm2 save
pm2 startup # 再次确认生效
✅ 四、配置防火墙与域名(可选但重要)
1. 开放端口(如 3000)
# 阿里云控制台操作(推荐):
# 登录阿里云 → ECS → 实例 → 安全组 → 添加入方向规则
# 协议:TCP, 端口范围:3000/3000, 授权对象:0.0.0.0/0(或仅信任 IP)
# 或命令行(若已安装 firewalld):
sudo firewall-cmd --permanent --add-port=3000/tcp
sudo firewall-cmd --reload
2. 反向X_X + HTTPS(生产必备)
使用 Nginx 作为反向X_X,配合 Let’s Encrypt 自动签发证书:
安装 Nginx
sudo apt install nginx certbot python3-certbot-nginx # Ubuntu
# 或
sudo yum install nginx certbot python3-certbot-nginx # CentOS
配置 /etc/nginx/sites-available/miniapp-backend
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
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;
}
}
启用并测试:
sudo ln -s /etc/nginx/sites-available/miniapp-backend /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
申请 SSL 证书
sudo certbot --nginx -d your-domain.com
# 按提示输入邮箱,自动完成配置
✅ 完成后访问 https://your-domain.com 即安全可用。
✅ 五、小程序端配置注意事项
- 在微信公众平台后台:开发 → 开发设置 → 服务器域名
- 添加
https://your-domain.com到「请求合法域名」 - 确保该域名已通过 HTTPS 且证书有效(Let’s Encrypt 免费且自动续期)
- 添加
✅ 六、运维建议
| 项目 | 建议 |
|---|---|
| 日志监控 | pm2 logs, 接入阿里云 SLS(日志服务) |
| 健康检查 | 编写 /health 接口,Nginx 可配置 upstream health check |
| 自动重启 | PM2 已支持崩溃自动重启;结合 systemd 双重保障 |
| 备份 | 定期备份数据库 + 代码(阿里云快照 / OSS 备份) |
| 监控告警 | 使用阿里云云监控 + 钉钉/企业微信 webhook 报警 |
需要我提供:
- 📦 完整的
Dockerfile+docker-compose.yml部署方案? - 🔧 针对 Express/Koa/NestJS 的示例项目结构?
- 🛡️ 如何集成阿里云 RDS MySQL / Redis 的示例配置?
欢迎告诉我你的技术栈和具体需求,我可以进一步定制方案!
CLOUD云计算