速卖通素材
奋斗

如何在阿里云服务器上快速配置Node.js开发环境?

服务器

在阿里云服务器上快速配置 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 应用已监听

💡 最佳实践建议

  1. 始终使用 nvm 管理 Node 版本,便于切换和隔离
  2. 不要以 root 运行 Node 应用,使用专用用户
  3. 生产环境用 PM2 管理进程,支持集群模式和自动重启
  4. 配合 CI/CD(如 GitHub Actions + 阿里云 ECS),实现自动化部署
  5. 定期备份数据库和应用数据
  6. 监控告警:使用阿里云云监控或 Prometheus + Grafana
未经允许不得转载:轻量云Cloud » 如何在阿里云服务器上快速配置Node.js开发环境?