加油
努力

部署前端静态页面到云服务器需要哪些步骤?

将前端静态页面部署到云服务器通常包括以下核心步骤,具体操作会因云服务商(如阿里云、腾讯云、AWS 等)和服务器环境略有差异:


一、准备工作

  1. 构建项目

    • 使用 npm run build(Vue/React)或类似命令生成生产环境的静态文件(通常在 distbuild 目录)。
    • 确保打包后的资源路径正确(如 base 配置为 / 或相对路径)。
  2. 准备服务器环境

    • 购买并登录云服务器(Linux 推荐 Ubuntu/CentOS)。
    • 安装必要工具:nginx(推荐)、gitcurl 等。
      # 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 为例)

  1. 创建站点配置文件

    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";
       }
    }
  2. 启用站点

    sudo ln -s /etc/nginx/sites-available/my-frontend /etc/nginx/sites-enabled/
    sudo nginx -t      # 测试配置语法
    sudo systemctl restart nginx
  3. 防火墙开放端口(如需)

    sudo ufw allow 'Nginx Full'
    # 或仅 HTTP/HTTPS
    sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp

四、域名与 HTTPS(可选但推荐)

  1. 绑定域名
    • 在 DNS 服务商处添加 A 记录,将域名指向服务器 IP。
  2. 申请 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)的详细操作指南吗?

云服务器