将前端静态页面部署到云服务器通常包括以下核心步骤,具体操作会因云服务商(如阿里云、腾讯云、AWS 等)和服务器环境略有差异:
一、准备工作
-
构建项目
- 使用
npm run build(Vue/React)或类似命令生成生产环境的静态文件(通常在dist或build目录)。 - 确保打包后的资源路径正确(如
base配置为/或相对路径)。
- 使用
-
准备服务器环境
- 购买并登录云服务器(Linux 推荐 Ubuntu/CentOS)。
- 安装必要工具:
nginx(推荐)、git、curl等。# Ubuntu 示例 sudo apt update && sudo apt install nginx git -y
二、上传代码到服务器
方式 A:通过 Git 拉取(推荐)
# 在服务器上创建项目目录
sudo mkdir -p /var/www/my-frontend
cd /var/www/my-frontend
# 初始化仓库并拉取代码(需提前配置 SSH 密钥或 Token)
git clone https://github.com/your-repo.git .
# 或直接复制 dist 目录内容
方式 B:本地打包后传输
# 本地执行
tar czf frontend.tar.gz dist/
# 通过 SCP 上传
scp frontend.tar.gz user@your-server-ip:/tmp/
# 服务器解压
ssh user@your-server-ip "cd /var/www && tar xzf /tmp/frontend.tar.gz"
三、配置 Web 服务器(以 Nginx 为例)
-
创建站点配置文件
sudo nano /etc/nginx/sites-available/my-frontend内容示例:
server { listen 80; server_name your-domain.com; # 替换为你的域名或 IP root /var/www/my-frontend/dist; # 指向打包后的目录 index index.html; location / { try_files $uri $uri/ /index.html; # SPA 路由关键配置 } # 可选:缓存静态资源 location ~* .(js|css|png|jpg|jpeg|gif|ico)$ { expires 1y; add_header Cache-Control "public, immutable"; } } -
启用站点
sudo ln -s /etc/nginx/sites-available/my-frontend /etc/nginx/sites-enabled/ sudo nginx -t # 测试配置语法 sudo systemctl restart nginx -
防火墙开放端口(如需)
sudo ufw allow 'Nginx Full' # 或仅 HTTP/HTTPS sudo ufw allow 80/tcp sudo ufw allow 443/tcp
四、域名与 HTTPS(可选但推荐)
- 绑定域名
- 在 DNS 服务商处添加 A 记录,将域名指向服务器 IP。
- 申请 SSL 证书(免费方案)
sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d your-domain.com按提示完成验证,自动配置 HTTPS。
五、验证与监控
- 访问
http://your-domain.com检查页面是否正常加载。 - 检查浏览器控制台是否有 404 错误(SPA 需确认
try_files配置)。 - 查看日志排查问题:
sudo tail -f /var/log/nginx/error.log
常见注意事项
- 单页应用(SPA):必须配置
try_files避免刷新时 404。 - 资源路径:若部署在子目录(如
/app),需在构建时设置base: '/app/'。 - 权限问题:确保 Nginx 用户(通常是
www-data)对网站目录有读权限:sudo chown -R www-data:www-data /var/www/my-frontend sudo chmod -R 755 /var/www/my-frontend - CI/CD 优化:后续可结合 GitHub Actions + SSH 实现自动化部署。
💡 替代方案:若无需自建服务器,可直接使用对象存储(如 OSS/S3)+ CDN 托管静态资源,成本更低且免运维。
需要针对特定框架(Vue/React)或云平台(阿里云 ECS/腾讯云 CVM)的详细操作指南吗?
云小栈