走啊走
加油

在阿里云上部署小程序Node.js后端服务的完整流程是什么?

服务器价格表

在阿里云上部署小程序的 Node.js 后端服务,通常包括以下几个关键步骤。以下是完整的流程说明,适用于大多数微信小程序或支付宝小程序等轻量级前端应用。


一、前期准备

  1. 注册阿里云账号

    • 访问 阿里云官网
    • 注册并完成实名认证
  2. 购买云服务器 ECS

    • 推荐配置(根据业务规模):
      • 实例类型:ECS 共享型 s6 或通用型 g6
      • 操作系统:CentOS 7.9 / Ubuntu 20.04 LTS / Alibaba Cloud Linux
      • 带宽:1~5 Mbps(视访问量而定)
      • 系统盘:40 GB 高效云盘或 SSD
    • 安全组:开放必要的端口(如 22、80、443)
  3. 域名备案(国内服务器必须)

    • 如果你的服务面向中国大陆用户,需进行 ICP 备案
    • 购买域名 → 提交备案申请 → 审核通过后使用

二、服务器环境搭建

1. 登录服务器(SSH)

ssh root@<你的公网IP>

2. 安装 Node.js 和 npm

推荐使用 nvm 安装指定版本:

# 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc

# 安装 Node.js(例如 v18)
nvm install 18
node -v  # 验证安装
npm -v

3. 安装 PM2(进程管理工具)

npm install -g pm2

4. 安装 Nginx(反向X_X & HTTPS)

# CentOS
sudo yum install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx

# Ubuntu
sudo apt update
sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx

三、上传和部署 Node.js 项目

1. 上传代码

方式一:使用 Git(推荐)

git clone https://github.com/yourname/your-nodejs-backend.git
cd your-nodejs-backend
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'
      },
      env_production: {
        NODE_ENV: 'production'
      }
    }
  ]
};

3. 使用 PM2 启动服务

pm2 start ecosystem.config.js --env production
pm2 save
pm2 startup  # 设置开机自启

4. 配置防火墙(开放端口)

假设你的 Node.js 监听 3000 端口:

# CentOS(firewalld)
sudo firewall-cmd --permanent --add-port=3000/tcp
sudo firewall-cmd --reload

# Ubuntu(ufw)
sudo ufw allow 3000

⚠️ 注意:不建议直接暴露 3000 端口给网络,应通过 Nginx 反向X_X。


四、配置 Nginx 反向X_X

编辑 Nginx 配置文件:

sudo vim /etc/nginx/conf.d/api.yourdomain.com.conf

内容如下:

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(SSL 证书)

1. 申请免费 SSL 证书(阿里云或 Let's Encrypt)

方式一:阿里云证书服务

  • 控制台 → 数字证书管理服务 → 申请免费证书
  • 下载 Nginx 版证书,上传到服务器 /etc/nginx/ssl/

方式二:Let's Encrypt(推荐自动化)

使用 Certbot(以 Ubuntu 为例):

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d api.yourdomain.com

Certbot 会自动修改 Nginx 配置并启用 HTTPS。

更新后的 Nginx 配置示例:

server {
    listen 443 ssl;
    server_name api.yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/api.yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/api.yourdomain.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:3000;
        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;
    }
}

# HTTP 强制跳转 HTTPS
server {
    listen 80;
    server_name api.yourdomain.com;
    return 301 https://$server_name$request_uri;
}

六、数据库配置(如 MongoDB / MySQL)

  1. 选择数据库方案

    • 自建数据库(安装在 ECS 上)
    • 使用阿里云 RDS(推荐,更稳定安全)
  2. 连接数据库

    • 在 Node.js 中使用 mongoose(MongoDB)或 mysql2(MySQL)
    • 配置 .env 文件管理数据库连接字符串
DB_URI=mongodb://username:password@dds-xxxx.mongodb.rds.aliyuncs.com:3717/dbname
NODE_ENV=production
PORT=3000

注意:RDS 需要配置白名单(添加 ECS 的内网 IP)


七、小程序端调用接口

在小程序中请求你的 API:

wx.request({
  url: 'https://api.yourdomain.com/api/login',
  method: 'POST',
  data: { code: '...' },
  success(res) {
    console.log(res.data);
  }
})

✅ 确保在小程序管理后台「开发设置」中添加 request 合法域名。


八、监控与维护

  1. 日志查看

    pm2 logs miniapp-api
  2. 性能监控

    • 使用 pm2 monit
    • 阿里云云监控服务
  3. 自动重启与更新

    • 使用 CI/CD 工具(如 Jenkins、GitHub Actions)
    • 示例 GitHub Action 自动部署脚本
  4. 定期备份

    • 数据库备份(RDS 自动备份)
    • 代码和配置文件快照

总结:完整流程图

[阿里云 ECS] + [域名备案]
       ↓
安装 Node.js + PM2 + Nginx
       ↓
上传 Node.js 后端代码
       ↓
PM2 启动服务(监听 3000)
       ↓
Nginx 反向X_X(80/443 → 3000)
       ↓
配置 SSL 证书(HTTPS)
       ↓
连接数据库(RDS 或自建)
       ↓
小程序前端调用 HTTPS 接口
       ↓
上线 + 监控 + 维护

最佳实践建议

  • 使用阿里云 RDS、OSS 分离服务
  • 开启云防火墙和安全组最小权限
  • 使用环境变量管理配置
  • 日志集中管理(可接入 SLS)
  • 使用负载均衡(SLB)应对高并发

如有需要,可以进一步集成 CI/CD 自动化部署(如 GitHub Actions + SSH 部署)。


如果你提供具体的技术栈(如 Express/Koa/NestJS),我可以给出更具体的部署配置。