在阿里云服务器上快速配置 Node.js 开发环境
一、前期准备
1. 连接服务器
ssh root@<你的ECS公网IP>
2. 更新系统包
# CentOS / Alibaba Cloud Linux
sudo yum update -y
# Ubuntu / Debian
sudo apt update && sudo apt upgrade -y
二、安装 Node.js(推荐多种方式)
✅ 方式一:使用 nvm(最灵活,推荐)
# 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# 使配置生效
source ~/.bashrc
# 查看可安装的版本
nvm ls-remote | grep "v20"
# 安装指定版本(如 LTS v20.x)
nvm install 20
# 设为默认版本
nvm alias default 20
# 验证
node -v # v20.x.x
npm -v # 对应 npm 版本
✅ 方式二:使用 NodeSource 官方源
# CentOS/RHEL
curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash -
sudo yum install -y nodejs
# Ubuntu/Debian
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo bash -
sudo apt install -y nodejs
# 验证
node -v
npm -v
✅ 方式三:使用预编译二进制包
cd /usr/local/src
wget https://nodejs.org/dist/v20.11.0/node-v20.11.0-linux-x64.tar.xz
tar -xJf node-v20.11.0-linux-x64.tar.xz
mv node-v20.11.0-linux-x64 /usr/local/node
# 配置环境变量
echo 'export PATH=/usr/local/node/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
node -v
npm -v
三、安装常用依赖工具
1. PM2 进程管理器
npm install -g pm2
pm2 --version
2. Nginx(反向X_X + 静态资源服务)
# CentOS
sudo yum install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx
# Ubuntu
sudo apt install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx
3. MySQL / PostgreSQL(按需选择)
# MySQL (CentOS)
sudo yum install -y mysql-server
sudo systemctl enable mysqld
sudo systemctl start mysqld
# PostgreSQL (Ubuntu)
sudo apt install -y postgresql postgresql-contrib
sudo systemctl enable postgresql
sudo systemctl start postgresql
4. Redis(可选)
sudo yum install -y redis # CentOS
sudo systemctl enable redis
sudo systemctl start redis
# 或
sudo apt install -y redis-server # Ubuntu
5. Git
sudo yum install -y git # CentOS
sudo apt install -y git # Ubuntu
四、项目部署流程
1. 克隆项目
mkdir -p /opt/app
cd /opt/app
git clone <你的仓库地址> my-project
cd my-project
2. 安装依赖 & 构建
npm ci # 生产环境推荐使用 ci
npm run build # 如果有前端构建步骤
3. 使用 PM2 启动应用
pm2 start app.js --name "my-app"
# 或使用 ecosystem.config.js 管理多进程
pm2 start ecosystem.config.js
# 保存进程列表
pm2 save
# 开机自启
pm2 startup
4. Nginx 反向X_X配置
# /etc/nginx/conf.d/my-app.conf
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;
}
# 静态文件缓存
location ~* .(js|css|png|jpg|jpeg|gif|ico|svg)$ {
expires 30d;
add_header Cache-Control "public, immutable";
}
}
# 测试并重启 Nginx
sudo nginx -t
sudo systemctl reload nginx
5. SSL 证书(HTTPS)
# 使用 Certbot 免费申请 Let's Encrypt 证书
sudo yum install -y certbot python3-certbot-nginx # CentOS
sudo apt install -y certbot python3-certbot-nginx # Ubuntu
sudo certbot --nginx -d your-domain.com
五、安全加固
# 1. 创建普通用户(避免直接用 root)
sudo useradd -m -s /bin/bash deployer
sudo passwd deployer
sudo usermod -aG wheel deployer # CentOS
# sudo usermod -aG sudo deployer # Ubuntu
# 2. 禁用 root SSH 登录
sudo sed -i 's/^PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl restart sshd
# 3. 配置防火墙
# CentOS (firewalld)
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
# Ubuntu (ufw)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 22/tcp
sudo ufw enable
# 4. 安装 fail2ban 防暴力破解
sudo yum install -y fail2ban # CentOS
sudo apt install -y fail2ban # Ubuntu
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
六、一键脚本(完整自动化)
#!/bin/bash
# setup-node-env.sh
set -e
echo "=== 开始配置 Node.js 开发环境 ==="
# 更新系统
yum update -y || apt update && apt upgrade -y
# 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install 20
nvm alias default 20
# 全局安装常用工具
npm install -g pm2 typescript ts-node nodemon
# 安装 Nginx
yum install -y nginx || apt install -y nginx
systemctl enable nginx
systemctl start nginx
# 安装 Git
yum install -y git || apt install -y git
# 安装 PM2 开机自启
pm2 startup
pm2 save
echo "=== 环境配置完成 ==="
echo "Node.js version: $(node -v)"
echo "NPM version: $(npm -v)"
echo "PM2 version: $(pm2 --version)"
echo "Nginx status: $(systemctl is-active nginx)"
chmod +x setup-node-env.sh
sudo ./setup-node-env.sh
七、验证清单
| 检查项 |
命令 |
预期结果 |
| Node.js |
node -v |
v20.x.x |
| npm |
npm -v |
10.x.x |
| PM2 |
pm2 list |
无报错 |
| Nginx |
nginx -t |
syntax ok |
| SSH |
ssh localhost |
正常连接 |
| 端口监听 |
netstat -tlnp | grep :3000 |
应用已监听 |
💡 最佳实践建议
- 始终使用 nvm 管理 Node 版本,便于切换和隔离
- 不要以 root 运行 Node 应用,使用专用用户
- 生产环境用 PM2 管理进程,支持集群模式和自动重启
- 配合 CI/CD(如 GitHub Actions + 阿里云 ECS),实现自动化部署
- 定期备份数据库和应用数据
- 监控告警:使用阿里云云监控或 Prometheus + Grafana