在阿里云ECS服务器上发布前端项目,通常是指将你的前端代码(如 Vue、React、Angular 等构建后的静态文件)部署到 ECS 实例中,并通过 Nginx 或 Apache 等 Web 服务器对外提供访问。以下是详细的发布步骤:
✅ 一、准备工作
-
购买并配置阿里云ECS实例
- 登录 阿里云控制台
- 创建一台 ECS 实例(推荐选择 Ubuntu/CentOS 系统)
- 配置安全组:开放
80(HTTP)、443(HTTPS)、22(SSH)端口
-
连接到ECS服务器
使用 SSH 工具连接(如:Terminal、Xshell、FinalShell):ssh root@你的ECS公网IP输入密码或使用密钥登录。
✅ 二、安装必要的环境
1. 安装 Nginx(推荐用于托管静态资源)
# Ubuntu/Debian
sudo apt update
sudo apt install nginx -y
# CentOS/RHEL
sudo yum install nginx -y
启动并设置开机自启:
sudo systemctl start nginx
sudo systemctl enable nginx
查看状态:
sudo systemctl status nginx
此时浏览器访问
http://你的ECS公网IP应该能看到 Nginx 欢迎页。
✅ 三、上传前端项目
方法一:本地构建后上传文件(推荐新手)
-
在本地开发环境中构建项目:
# Vue / React 项目 npm run build生成
dist/目录(或build/)。 -
将
dist/文件夹内容上传到 ECS:
使用scp命令:scp -r dist/* root@你的ECS公网IP:/usr/share/nginx/html/注意:这会覆盖默认的 Nginx 页面。
方法二:在服务器上拉取代码并构建(适合自动化)
-
安装 Git 和 Node.js:
# 安装 Git sudo apt install git -y # 安装 Node.js(以 v18 为例) curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt-get install -y nodejs -
克隆代码并构建:
git clone https://gitee.com/yourname/your-frontend.git /opt/frontend cd /opt/frontend npm install npm run build -
将构建结果复制到 Nginx 目录:
sudo cp -r dist/* /usr/share/nginx/html/
✅ 四、配置 Nginx(可选但建议)
编辑 Nginx 配置文件:
sudo nano /etc/nginx/sites-available/default # Ubuntu
# 或
sudo nano /etc/nginx/nginx.conf # CentOS
确保 server 块包含:
server {
listen 80;
server_name your-domain.com; # 可选:绑定域名
location / {
root /usr/share/nginx/html;
index index.html;
try_files $uri $uri/ /index.html; # 支持前端路由(如 Vue Router 的 history 模式)
}
}
保存后测试配置并重启 Nginx:
sudo nginx -t # 测试配置是否正确
sudo systemctl restart nginx
✅ 五、绑定域名与 HTTPS(可选)
-
解析域名到 ECS 公网 IP
- 在阿里云「云解析 DNS」中添加 A 记录指向 ECS IP。
-
申请免费 SSL 证书(HTTPS)
-
使用 阿里云SSL证书服务 申请免费证书。
-
下载 Nginx 版证书,上传到服务器
/etc/nginx/ssl/目录。 -
修改 Nginx 配置支持 HTTPS:
server { listen 443 ssl; server_name your-domain.com; ssl_certificate /etc/nginx/ssl/your-cert.pem; ssl_certificate_key /etc/nginx/ssl/your-key.key; location / { root /usr/share/nginx/html; index index.html; try_files $uri $uri/ /index.html; } } # 强制 HTTP 跳转 HTTPS server { listen 80; server_name your-domain.com; return 301 https://$host$request_uri; } -
重启 Nginx。
-
✅ 六、常见问题排查
| 问题 | 解决方法 |
|---|---|
| 访问 IP 显示空白 | 检查文件是否复制到 /usr/share/nginx/html,是否有 index.html |
| 刷新页面 404 | 需要配置 try_files 支持前端路由 |
| 无法访问 | 检查安全组是否开放 80/443 端口 |
| 权限错误 | 使用 sudo 或调整文件权限 chmod -R 755 /usr/share/nginx/html |
✅ 七、进阶建议
- 使用 CI/CD 自动化部署(如 Jenkins、GitHub Actions、阿里云效)
- 配合 OSS + CDN 托管静态资源(更便宜、更快)
- 使用 Docker 部署(便于管理)
如果你提供具体的技术栈(如 Vue + Vite)、是否使用域名、是否需要 HTTPS,我可以给出更精确的配置示例。
需要我帮你写一个完整的 Nginx 配置模板吗?
CDNK博客