Nginx 统一配置快速部署指南
🚀 一键部署(推荐)
bash
# 1. 进入配置目录
cd w:/ruoyi-office/ruoyi-office-vben/apps/web-antd/nginx
# 2. 执行自动化部署脚本
chmod +x deploy-nginx-config.sh
./deploy-nginx-config.sh部署脚本会自动完成:
- ✅ 备份现有配置
- ✅ 上传新配置
- ✅ 删除旧配置
- ✅ 验证配置语法
- ✅ 重新加载 Nginx
- ✅ 验证部署结果
📋 快速检查清单
部署前检查
- [ ] 已部署 VitePress 文档到
/usr/share/nginx/html/ruoyi-office-doc - [ ] 已部署 Vben Admin 到
/usr/share/nginx/html/web - [ ] 可以 SSH 登录到 127.0.0.1
- [ ] Nginx 容器正常运行
部署后验证
bash
# 1. 测试文档站点
curl -I http://127.0.0.1/
# 期望: HTTP/1.1 200 OK
# 2. 测试管理后台
curl -I http://127.0.0.1/web
# 期望: HTTP/1.1 200 OK
# 3. 测试健康检查
curl http://127.0.0.1/health
# 期望: healthy
# 4. 在浏览器中访问
# - http://127.0.0.1/ → VitePress 文档
# - http://127.0.0.1/web → Vben Admin📂 配置文件说明
使用中的配置
/data/nginx/conf/conf.d/
└── ruoyi-office.conf # 统一配置文件(使用中)已删除的旧配置
/data/nginx/conf/conf.d/backup-YYYYMMDD-HHMMSS/
├── default.conf # 原始默认配置
├── ruoyi-office-doc.conf # VitePress 旧配置
└── web-antd.conf # Vben 旧配置(有语法错误)🌐 访问地址
| 项目 | 访问地址 | 物理路径 |
|---|---|---|
| VitePress 文档 | http://127.0.0.1/ | /usr/share/nginx/html/ruoyi-office-doc |
| Vben Admin 管理后台 | http://127.0.0.1/web | /usr/share/nginx/html/web |
| 健康检查 | http://127.0.0.1/health | N/A |
⚡ 常用命令
查看配置
bash
# 查看当前配置
ssh root@127.0.0.1 'cat /data/nginx/conf/conf.d/ruoyi-office.conf'
# 查看配置文件列表
ssh root@127.0.0.1 'ls -lh /data/nginx/conf/conf.d/'验证配置
bash
# 测试配置语法
ssh root@127.0.0.1 'docker exec nginx nginx -t'
# 重新加载配置
ssh root@127.0.0.1 'docker exec nginx nginx -s reload'查看日志
bash
# 查看访问日志
ssh root@127.0.0.1 'docker exec nginx tail -f /var/log/nginx/ruoyi-office-access.log'
# 查看错误日志
ssh root@127.0.0.1 'docker exec nginx tail -f /var/log/nginx/ruoyi-office-error.log'
# 查看 Nginx 容器日志
ssh root@127.0.0.1 'docker logs -f nginx'🔙 回滚配置
如果部署后出现问题,可以快速回滚:
bash
# 1. 找到备份目录
ssh root@127.0.0.1 'ls -lt /data/nginx/conf/conf.d/ | grep backup'
# 2. 回滚到指定备份(替换时间戳)
ssh root@127.0.0.1 << 'EOF'
BACKUP_DIR="/data/nginx/conf/conf.d/backup-20260121-153000"
rm -f /data/nginx/conf/conf.d/ruoyi-office.conf
cp ${BACKUP_DIR}/*.conf /data/nginx/conf/conf.d/
docker exec nginx nginx -t && docker exec nginx nginx -s reload
echo "✓ 回滚完成"
EOF🛠️ 故障排查
问题1: 配置语法错误
症状: nginx -t 失败
解决:
bash
# 查看错误详情
ssh root@127.0.0.1 'docker exec nginx nginx -t'
# 检查配置文件内容
ssh root@127.0.0.1 'cat /data/nginx/conf/conf.d/ruoyi-office.conf'问题2: 页面 404
症状: 访问 http://127.0.0.1/web 返回 404
解决:
bash
# 1. 检查文件是否存在
ssh root@127.0.0.1 'ls -lh /usr/share/nginx/html/web/'
# 2. 检查文件权限
ssh root@127.0.0.1 'ls -la /usr/share/nginx/html/web/'
# 3. 检查 Nginx 错误日志
ssh root@127.0.0.1 'docker exec nginx tail -100 /var/log/nginx/ruoyi-office-error.log'问题3: 静态资源 404
症状: 页面打开但 CSS/JS 加载失败
可能原因:
- Vite 构建时的
base配置不正确 - Nginx
alias配置错误
解决:
bash
# 1. 检查 vite.config.mts 中的 base 配置
# 应该是: base: process.env.NODE_ENV === 'production' ? '/web/' : '/'
# 2. 检查 Nginx location /web 配置
ssh root@127.0.0.1 'grep -A 10 "location /web" /data/nginx/conf/conf.d/ruoyi-office.conf'
# 3. 查看访问日志,确认请求路径
ssh root@127.0.0.1 'docker exec nginx tail -100 /var/log/nginx/ruoyi-office-access.log | grep 404'问题4: Gzip 压缩未生效
验证方法:
bash
# 检查响应头
curl -I -H "Accept-Encoding: gzip" http://127.0.0.1/web
# 应该包含: Content-Encoding: gzip解决: 检查 Nginx 配置中的 gzip 指令
📖 相关文档
✅ 成功标志
部署成功后,应该能够:
- ✅ 访问 http://127.0.0.1/ 看到 VitePress 文档
- ✅ 访问 http://127.0.0.1/web 看到 Vben Admin 登录页面
- ✅ 页面样式和静态资源加载正常
- ✅ SPA 路由跳转正常
- ✅
/health接口返回healthy - ✅ 浏览器开发者工具显示 Gzip 压缩已启用
- ✅ 静态资源缓存策略生效(查看响应头)
💡 最佳实践
- 定期备份配置: 每次修改前都备份
- 测试后再部署: 使用
nginx -t验证配置 - 监控日志: 定期查看错误日志
- 文档同步: 配置变更后更新文档
- 回滚准备: 保留至少 3 个历史备份
🆘 需要帮助?
如果遇到问题:
