在阿里云服务器上部署前端项目是一个常见的需求,适用于 Vue、React、Angular 等构建的静态网站。以下是详细的步骤指南,帮助你完成部署。
🧰 准备工作
-
购买并登录阿里云ECS服务器
- 推荐选择 Ubuntu 或 CentOS 系统(这里以 Ubuntu 为例)
- 开放安全组端口:
80(HTTP)、443(HTTPS)、22(SSH)
-
本地打包好前端项目
npm run build打包后会生成一个
dist/目录(不同框架可能不同)。 -
上传文件到服务器
可使用以下方式:- 使用
scp命令:scp -r dist/* your_username@your_server_ip:/path/to/target/folder - 使用 FTP 工具如 FileZilla
- 使用 Git 部署(推荐用于持续集成)
- 使用
🚀 部署方法一:使用 Nginx(推荐)
1. 安装 Nginx
sudo apt update
sudo apt install nginx
启动并设置开机自启:
sudo systemctl start nginx
sudo systemctl enable nginx
2. 将前端项目放入 Nginx 默认目录
sudo cp -r dist/* /var/www/html/
或者你可以自定义配置:
3. 修改 Nginx 配置(可选)
编辑站点配置文件:
sudo nano /etc/nginx/sites-available/default
修改如下内容(支持单页应用 SPA):
server {
listen 80;
server_name your_domain_or_ip;
location / {
root /var/www/html;
index index.html;
try_files $uri $uri/ =404;
}
}
如果你是用的是自己创建的目录,比如 /home/ubuntu/myapp,就将 root 指向该路径。
4. 检查配置并重启 Nginx
sudo nginx -t
sudo systemctl reload nginx
✅ 浏览器访问测试
打开浏览器输入你的服务器公网 IP:
http://your_server_ip
你应该能看到你的前端页面了!
🔁 部署方法二:使用 Node.js + Express(不推荐用于生产,适合临时测试)
安装 Node.js 和 npm:
sudo apt install nodejs npm
创建一个 server.js 文件:
const express = require('express');
const path = require('path');
const app = express();
app.use(express.static(path.join(__dirname, 'dist')));
app.get('*', (req, res) => {
res.sendFile(path.join(__dirname, 'dist', 'index.html'));
});
const PORT = process.env.PORT || 80;
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
运行服务:
node server.js
注意:这种方式适合调试,但不如 Nginx 高效稳定,生产环境建议用 Nginx。
🔐 绑定域名 & HTTPS(可选)
1. 购买并解析域名到服务器 IP
- 在阿里云控制台申请域名,并进行 DNS 解析。
2. 配置 SSL 证书(HTTPS)
可以使用阿里云免费 SSL 证书或 Let’s Encrypt:
使用 Let’s Encrypt 示例:
安装 Certbot:
sudo apt install certbot python3-certbot-nginx
申请证书:
sudo certbot --nginx -d yourdomain.com
Certbot 会自动更新 Nginx 配置,启用 HTTPS。
🛠️ 常见问题排查
| 问题 | 解决方案 |
|---|---|
| 页面空白 | 检查 Nginx 的 root 路径是否正确,确保 index.html 存在 |
| 403 Forbidden | 检查文件权限,Nginx 用户是否有权限读取文件 |
| 无法访问 | 检查安全组是否开放 80 端口 |
| 刷新页面 404 | 确保 Nginx 配置中包含 try_files $uri $uri/ /index.html |
🧪 进阶:自动化部署(可选)
可以使用 GitHub Actions、Jenkins、PM2 等工具实现 CI/CD 自动化部署。
✅ 总结
| 步骤 | 内容 |
|---|---|
| 1 | 打包前端项目 |
| 2 | 上传至服务器 |
| 3 | 安装 Nginx 并配置静态资源路径 |
| 4 | 重启 Nginx 访问页面 |
| 5 | (可选)绑定域名 + 配置 HTTPS |
如果你有具体的技术栈(如 Vue、React),我也可以提供对应的部署脚本和配置示例。
需要我帮你写一份完整的部署脚本吗?😊
云知识