将前端静态页面通过 Nginx 部署到 Linux 服务器,通常分为以下核心步骤:
一、准备阶段
1. 构建前端项目
# 假设使用 Vue/React 等框架
npm run build
# 生成 dist 或 build 目录(包含 index.html, js/css 等资源)
2. 安装 Nginx(如未安装)
# Ubuntu/Debian
sudo apt update
sudo apt install nginx
# CentOS/RHEL
sudo yum install nginx
# 启动并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx
二、上传静态文件
方式 1:SCP 命令(推荐)
# 本地打包后上传
tar -czf frontend.tar.gz dist/
scp frontend.tar.gz user@your-server:/tmp/
# 在服务器上解压
ssh user@your-server
cd /tmp
tar -xzvf frontend.tar.gz
sudo mv dist /var/www/html/myapp # 移动到 Nginx 默认目录
方式 2:SFTP 工具
使用 FileZilla、WinSCP 等图形化工具直接拖拽 dist 文件夹到服务器指定目录。
三、配置 Nginx
1. 创建站点配置文件
sudo nano /etc/nginx/sites-available/myapp
2. 写入配置示例
server {
listen 80;
server_name your-domain.com www.your-domain.com;
root /var/www/html/myapp;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
# 可选:缓存静态资源
location ~* .(js|css|png|jpg|jpeg|gif|svg)$ {
expires 30d;
add_header Cache-Control "public, immutable";
}
# 可选:Gzip 压缩
gzip on;
gzip_types text/plain application/json application/javascript text/css;
}
✅ 关键点:
try_files $uri $uri/ /index.html;支持 Vue/React 等单页应用的路由刷新问题。
3. 启用站点
# 创建软链接
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
# 测试配置
sudo nginx -t
# 重载配置
sudo systemctl reload nginx
四、验证部署
# 检查 Nginx 状态
sudo systemctl status nginx
# 访问域名或 IP 测试
curl http://your-domain.com
# 或直接浏览器访问
五、进阶优化建议
| 场景 | 方案 |
|---|---|
| HTTPS 加密 | 使用 Let’s Encrypt + Certbot 自动申请证书 |
| 多版本管理 | 用 version/ 目录隔离不同构建产物 |
| CDN 提速 | 将静态资源托管至阿里云 OSS + CloudFront 等 |
| 权限控制 | 修改 /var/www/html/myapp 属主为 www-data |
# 修复权限(避免 403 错误)
sudo chown -R www-data:www-data /var/www/html/myapp
sudo chmod -R 755 /var/www/html/myapp
常见问题排查
- 404 Not Found → 检查
root路径是否正确,文件是否存在 - 403 Forbidden → 检查目录权限和 SELinux(CentOS)
- 路由刷新 404 → 确认
try_files配置已生效 - Nginx 不生效 → 执行
sudo nginx -t检查语法错误
需要我提供具体框架(如 Vue3、React)的完整部署脚本模板吗?
PHPWP博客