在阿里云ECS上部署Node.js后端服务的步骤如下,涵盖从创建实例到服务上线的完整流程:
一、准备工作
-
注册阿里云账号并完成实名认证
- 访问 https://www.aliyun.com
- 登录并开通ECS服务
-
选择合适的ECS实例配置
- 推荐配置(开发/测试):
- 实例类型:通用型(如 ecs.t6-lc2m1.small)
- 镜像:公共镜像 → Ubuntu 20.04 / CentOS 7.x / Alibaba Cloud Linux
- 系统盘:至少 40GB SSD
- 带宽:按需选择(1Mbps 起步)
- 推荐配置(开发/测试):
-
设置安全组规则
- 开放以下端口:
- 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,推荐)
- 安装 Nginx
sudo apt update
sudo apt install nginx -y
# 或 CentOS 使用 yum
# sudo yum install nginx -y
- 启动并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx
- 配置反向
编辑配置文件:
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;
}
}
- 测试并重载 Nginx
sudo nginx -t
sudo systemctl reload nginx
七、绑定域名与配置 SSL(可选)
-
域名解析
- 在阿里云控制台 DNS 解析中,将域名 A 记录指向 ECS 公网 IP
-
申请免费 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 后端服务。
CLOUD技术笔记