使用阿里云ECS部署Node.js后端服务的步骤是什么?

在阿里云ECS上部署Node.js后端服务的步骤如下,涵盖从创建实例到服务上线的完整流程:


一、准备工作

  1. 注册阿里云账号并完成实名认证

    • 访问 https://www.aliyun.com
    • 登录并开通ECS服务
  2. 选择合适的ECS实例配置

    • 推荐配置(开发/测试):
      • 实例类型:通用型(如 ecs.t6-lc2m1.small)
      • 镜像:公共镜像 → Ubuntu 20.04 / CentOS 7.x / Alibaba Cloud Linux
      • 系统盘:至少 40GB SSD
      • 带宽:按需选择(1Mbps 起步)
  3. 设置安全组规则

    • 开放以下端口:
      • SSH:22(用于远程连接)
      • HTTP:80
      • HTTPS:443(可选)
      • 自定义端口(如 3000、5000,用于 Node.js 应用)

二、连接 ECS 实例

使用 SSH 连接到服务器(以 Ubuntu 为例):

ssh root@<你的公网IP>
# 或者使用密钥方式
ssh -i /path/to/your-key.pem root@<公网IP>

三、安装 Node.js 和 npm

方法一:使用 nvm(推荐)

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

# 重新加载 shell 配置
source ~/.bashrc

# 安装 Node.js(例如 v18)
nvm install 18
nvm use 18
node -v  # 检查版本
npm -v

方法二:直接下载二进制包(适用于无网络工具环境)

wget https://nodejs.org/dist/v18.17.0/node-v18.17.0-linux-x64.tar.xz
tar -xf node-v18.17.0-linux-x64.tar.xz
sudo mv node-v18.17.0-linux-x64 /usr/local/nodejs
sudo ln -s /usr/local/nodejs/bin/node /usr/bin/node
sudo ln -s /usr/local/nodejs/bin/npm /usr/bin/npm

四、上传 Node.js 项目代码

方式1:使用 Git 克隆

git clone https://github.com/yourname/your-node-project.git
cd your-node-project
npm install

方式2:本地上传(使用 scp)

scp -r ./local-project root@<公网IP>:/root/myapp

然后在服务器上进入目录并安装依赖:

cd /root/myapp
npm install --production  # 生产环境不安装 devDependencies

五、配置 PM2(进程管理器,推荐)

PM2 可以让 Node.js 服务后台运行并自动重启。

npm install -g pm2

# 启动应用
pm2 start app.js --name "my-api"

# 设置开机自启
pm2 startup
pm2 save

常用命令:

pm2 list          # 查看运行中的进程
pm2 logs my-api   # 查看日志
pm2 restart my-api
pm2 stop my-api

六、配置反向(Nginx,推荐)

  1. 安装 Nginx
sudo apt update
sudo apt install nginx -y
# 或 CentOS 使用 yum
# sudo yum install nginx -y
  1. 启动并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx
  1. 配置反向

编辑配置文件:

sudo nano /etc/nginx/sites-available/default

添加如下内容(假设 Node.js 服务监听 3000 端口):

server {
    listen 80;
    server_name your-domain.com;  # 或公网 IP

    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_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;
    }
}
  1. 测试并重载 Nginx
sudo nginx -t
sudo systemctl reload nginx

七、绑定域名与配置 SSL(可选)

  1. 域名解析

    • 在阿里云控制台 DNS 解析中,将域名 A 记录指向 ECS 公网 IP
  2. 申请免费 SSL 证书(Let’s Encrypt)

使用 Certbot:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your-domain.com

Certbot 会自动配置 HTTPS 并更新 Nginx。


八、防火墙设置(如启用 ufw)

sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable

九、访问服务

打开浏览器访问:

  • http://<公网IP>https://your-domain.com

确保 Node.js 服务已正常运行且端口开放。


十、监控与维护

  • 使用 pm2 monit 查看资源占用
  • 定期查看日志:pm2 logs
  • 更新系统和软件:sudo apt update && sudo apt upgrade

总结流程图

购买ECS → 连接SSH → 安装Node.js → 上传代码 → 安装PM2 → 配置Nginx → 域名+SSL → 上线访问

通过以上步骤,你就可以成功在阿里云ECS上部署一个稳定运行的 Node.js 后端服务。