将前端项目部署到阿里云服务器(ECS)是一个常见的需求。以下是详细的步骤,帮助你把一个前端项目(如 Vue、React 或纯 HTML/CSS/JS 项目)部署到阿里云服务器上。
🧩 前提条件
- 已购买阿里云 ECS 实例
- ECS 安全组开放了 80 和 443 端口(用于 HTTP/HTTPS)
- 本地已有打包好的前端项目(例如通过
npm run build打包后的 dist 文件夹) - SSH 连接工具(如 Xshell、FinalShell、Termius、或使用终端)
🚀 部署流程
步骤 1:连接到阿里云服务器(ECS)
使用 SSH 登录你的服务器:
ssh root@你的服务器公网IP
如果是 Ubuntu 用户:
ssh ubuntu@你的服务器公网IP
如果是密钥登录,请使用
-i参数指定私钥路径:ssh -i /path/to/private_key username@ip
步骤 2:安装 Nginx(推荐用于静态资源服务)
CentOS:
sudo yum install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
Ubuntu:
sudo apt update
sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
访问 http://你的服务器公网IP,看到欢迎页面说明 Nginx 安装成功。
步骤 3:上传前端项目文件
你可以通过以下几种方式上传 dist 文件夹的内容:
✅ 方法一:使用 scp 从本地上传
在本地终端执行:
scp -r dist/* root@你的服务器公网IP:/usr/share/nginx/html/
或者上传整个目录:
scp -r dist root@你的服务器公网IP:/usr/share/nginx/html/
然后在服务器中重命名:
mv /usr/share/nginx/html/dist/* /usr/share/nginx/html/
✅ 方法二:使用 FTP 工具(如 FileZilla)
- 下载并配置 FileZilla
- 使用 SFTP 协议连接服务器
- 把本地的
dist文件夹内容上传到/usr/share/nginx/html/
步骤 4:配置 Nginx(可选)
编辑默认站点配置:
sudo nano /etc/nginx/conf.d/default.conf
修改如下示例配置:
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ =404;
}
}
保存后重启 Nginx:
sudo systemctl restart nginx
步骤 5:测试访问
打开浏览器,输入你的服务器公网 IP 地址:
http://你的服务器公网IP
你应该能看到你的前端项目已经部署成功!
🔐 可选进阶操作
✅ 绑定域名
- 在阿里云控制台申请域名并完成备案。
- 将域名解析到服务器的公网 IP。
- 修改 Nginx 配置中的
server_name yourdomain.com; - 重启 Nginx。
✅ 配置 HTTPS(推荐)
使用 Let’s Encrypt 免费证书:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx
根据提示选择域名即可自动配置 HTTPS。
🛠️ 常见问题
| 问题 | 解决方法 |
|---|---|
| 页面空白 | 检查是否上传了正确的 index.html,Nginx 是否指向正确目录 |
| 无法访问 | 检查安全组是否放行 80 端口 |
| 图片加载失败 | 检查路径是否为相对路径,或 Nginx 是否配置了正确的 root 路径 |
| 刷新 404 | 添加 try_files $uri $uri/ =404; 到 Nginx 配置中 |
📦 补充:如何打包前端项目
如果你还没打包,以常见框架为例:
Vue 项目
npm run build
生成的文件在 dist/ 目录下。
React 项目(Create React App)
npm run build
生成的文件在 build/ 目录下。
✅ 总结
部署前端项目到阿里云服务器主要分以下几个步骤:
- 登录服务器
- 安装 Nginx
- 上传前端打包后的文件(通常是
dist或build) - 配置 Nginx 指向这些文件
- 测试访问
如果你需要我帮你写具体的 Nginx 配置、域名绑定、HTTPS 配置等,也可以继续问我 😄
是否需要我提供一个完整的脚本或一键部署方案?
云知识