将项目部署到阿里云 ECS(Elastic Compute Service)服务器是一个常见的开发运维任务。以下是详细的部署步骤,适用于大多数 Web 项目(如 Node.js、Python、Java、Vue/React 前端等)。
✅ 一、准备工作
-
购买并配置阿里云 ECS 实例
- 登录 阿里云控制台
- 创建 ECS 实例(推荐选择 CentOS / Ubuntu / Alibaba Cloud Linux)
- 设置安全组规则:
- 开放
22端口(SSH 连接) - 开放
80端口(HTTP) - 开放
443端口(HTTPS) - 如有需要,开放其他端口(如 3000、8080 等)
- 开放
-
获取公网 IP 地址
- 在实例详情中查看“公网 IP”
-
本地准备好项目代码
- 确保项目可以在本地运行
- 打包前端(如使用
npm run build)
✅ 二、连接到 ECS 服务器
使用 SSH 连接(Linux/Mac)或工具(Windows 推荐使用 Xshell / FinalShell / PuTTY)
ssh root@你的公网IP
首次登录可能需要输入密码或使用密钥对认证。
✅ 三、安装必要环境
根据你的项目类型安装依赖:
示例:Node.js + Nginx 部署 Vue/React 项目
- 更新系统包
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
# CentOS/Alibaba Cloud Linux
sudo yum update -y
- 安装 Node.js 和 npm
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs
验证:
node -v
npm -v
- 安装 PM2(用于管理 Node 后端服务)
npm install -g pm2
- 安装 Nginx(用于反向和静态文件服务)
sudo apt install nginx -y # Ubuntu
sudo yum install nginx -y # CentOS
启动并设置开机自启:
sudo systemctl start nginx
sudo systemctl enable nginx
✅ 四、上传项目代码
方法一:使用 Git 克隆
git clone https://github.com/yourname/your-project.git
cd your-project
npm install
npm run build # 如果是前端项目
方法二:使用 SCP 从本地上传
scp -r ./dist root@你的IP:/root/dist
✅ 五、部署项目
情况 1:纯前端静态项目(Vue/React)
- 将构建后的文件(如
dist目录)复制到 Nginx 默认目录
sudo cp -r dist/* /usr/share/nginx/html/
-
测试访问公网 IP,看是否能打开页面
-
(可选)配置 Nginx 反向或自定义域名
编辑配置文件:
sudo nano /etc/nginx/conf.d/default.conf
示例配置:
server {
listen 80;
server_name your-domain.com; # 或者直接用 IP
location / {
root /usr/share/nginx/html;
index index.html;
try_files $uri $uri/ /index.html;
}
}
重启 Nginx:
sudo systemctl restart nginx
情况 2:后端 Node.js 项目
- 使用 PM2 启动服务
cd /root/your-node-project
npm install
pm2 start app.js --name "my-api"
- 设置 PM2 开机自启
pm2 startup
pm2 save
- 配置 Nginx 反向
location /api/ {
proxy_pass http://127.0.0.1:3000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
✅ 六、绑定域名(可选)
- 在阿里云购买域名
- 进入「域名解析」,添加 A 记录指向 ECS 的公网 IP
- 在 Nginx 中配置
server_name yourdomain.com - 申请 SSL 证书(可用阿里云免费证书),启用 HTTPS
✅ 七、防火墙与安全建议
- 关闭不必要的端口
- 使用非 root 用户部署
- 定期更新系统和软件
- 配置云盾基础防护
✅ 八、常用命令总结
| 功能 | 命令 |
|---|---|
| 重启 Nginx | sudo systemctl restart nginx |
| 查看 Nginx 状态 | sudo systemctl status nginx |
| 查看端口占用 | netstat -tuln | grep 80 |
| 查看日志 | tail -f /var/log/nginx/error.log |
| PM2 列出进程 | pm2 list |
| 停止 PM2 应用 | pm2 stop app_name |
🎯 总结
部署流程大致为:
买 ECS → 改安全组 → SSH 登录 → 装环境 → 传代码 → 配 Nginx/PM2 → 访问测试 → 绑定域名
如果你告诉我你具体是什么类型的项目(如 Vue、Spring Boot、Django 等),我可以提供更具体的部署脚本和配置。
需要我生成一个自动化部署脚本吗?
PHPWP博客