在阿里云上部署前端项目(如 Vue、React、Angular 或静态 HTML 页面)是一个常见的需求,下面我将为你提供一个详细的步骤指南,适用于使用 ECS(弹性计算服务) 和 OSS + CDN 的常见方式。
🚀 一、使用 ECS 部署前端项目(推荐新手)
✅ 步骤概览:
- 购买 ECS 实例
- 配置安全组
- 连接服务器
- 安装 Nginx
- 上传并部署前端代码
- 配置 Nginx 转发
- 绑定域名 & 备案
- HTTPS 配置(可选)
1️⃣ 购买 ECS 实例
- 登录 阿里云控制台
- 搜索 “ECS” 并创建实例
- 推荐选择:
- 地域:靠近用户或你所在地区
- 系统镜像:CentOS / Ubuntu / Alibaba Cloud Linux
- 带宽:1~2 Mbps 起步即可(静态资源消耗低)
- 安全组:开放
80(HTTP)、443(HTTPS)、22(SSH)
2️⃣ 连接服务器
- 使用 SSH 工具(如 Xshell、FinalShell、Termius)或阿里云自带的 远程连接
- 示例命令:
ssh root@你的公网IP
3️⃣ 安装 Nginx
以 CentOS 为例:
# 更新软件包
sudo yum update -y
# 安装 nginx
sudo yum install nginx -y
# 启动 nginx
sudo systemctl start nginx
# 设置开机启动
sudo systemctl enable nginx
访问你的公网 IP,如果看到 Nginx 默认页面说明安装成功。
4️⃣ 打包并上传前端代码
本地执行:
npm run build
打包完成后,将 dist/ 目录上传到服务器,比如用 scp:
scp -r dist/* root@你的公网IP:/usr/share/nginx/html/
或者使用 FTP/SFTP 工具上传。
5️⃣ 配置 Nginx
编辑 Nginx 默认配置文件:
sudo nano /etc/nginx/conf.d/default.conf
修改为如下内容(适配前端路由):
server {
listen 80;
server_name yourdomain.com;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ =404;
}
}
保存后重启 Nginx:
sudo systemctl restart nginx
6️⃣ 绑定域名 & 备案(非常重要)
- 在阿里云申请域名(如 abc.com)
- 将域名解析到你的 ECS 公网 IP(DNS 解析)
- 如果是国内服务器(我国大陆),必须进行 ICP备案
- 进入 阿里云备案系统 提交资料
7️⃣ HTTPS 配置(推荐)
- 在阿里云申请免费 SSL 证书(搜索“SSL证书”)
- 下载证书并上传到服务器
- 修改 Nginx 配置启用 HTTPS(略复杂,需要私钥和证书路径)
示例 HTTPS 配置:
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /path/to/your_cert.pem;
ssl_certificate_key /path/to/your_key.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
root /usr/share/nginx/html;
index index.html;
try_files $uri $uri/ =404;
}
}
重启 Nginx 即可生效。
☁️ 二、使用 OSS + CDN 部署静态网站(更轻量、适合纯静态)
✅ 优点:
- 不用维护服务器
- 自动支持 HTTPS
- 支持 CDN 提速
✅ 步骤简要:
- 创建 OSS Bucket(记得选“读写权限为公共读”)
- 开启“静态网站托管”
- 上传前端打包后的
dist/文件夹 - 获取访问地址(如:http://yourbucket.oss-cn-beijing.aliyuncs.com)
- 绑定自定义域名 + CDN 提速(可选)
- 配置 HTTPS(通过 CDN 或 OSS 域名)
⚠️ 注意:这种方式不支持动态接口(如 API 请求),需配合后端服务使用。
🧪 补充建议
- 若你是前后端分离架构,可以考虑:
- 前端部署在 OSS/CDN
- 后端部署在 ECS 或函数计算(FC)
- 可以使用 CI/CD 工具自动部署(如 Jenkins、GitHub Actions)
📌 总结对比
| 方式 | 是否需要服务器 | 是否支持 HTTPS | 是否适合 SPA | 是否适合动态请求 |
|---|---|---|---|---|
| ECS + Nginx | ✅ | ✅ | ✅ | ✅ |
| OSS 静态托管 | ❌ | ✅(绑定 CDN) | ✅ | ❌ |
如果你告诉我你使用的框架(Vue/React/Angular)、是否需要 API、是否已有域名等信息,我可以给你更定制化的部署方案。欢迎继续提问!
PHPWP博客