--- name: session-20260612-2 description: 2026-06-12 第2次会话 — VPN网络带宽诊断、Nginx代理丢失gzip修复、共享静态资源域名解决双域重复加载 metadata: type: session date: 2026-06-12 sessionNumber: 2 startTime: 2026-06-12T19:30:00+08:00 --- # 2026-06-12 第2次会话 ## 会话摘要 用户反馈 Vue 前端通过 VPN 访问非常慢(JS/CSS 加载要 1 分钟)。诊断发现根因是 Nginx 代理层(10.20.1.160)丢失了 gzip 压缩,导致 1MB+ 的文件通过 VPN 窄带宽原样传输。用户自行修复。 ## 关键操作 ### VPN 网络诊断 — 前端加载慢 - **问题现象**: 通过域名 `web.gw.zgitm.com` 访问前端,JS/CSS 加载要 40 秒~1 分钟 - **网络拓扑**: 用户电脑(10.20.1.5) → 公网VPN → 阿里云VPN(10.20.1.1) → Nginx代理(10.20.1.160) → 前端服务(10.20.1.170:5001) - **域名解析**: `web.gw.zgitm.com` 和 `login.user.zgitm.com` 均解析到 10.20.1.160 - **实测数据**: | 路径 | el.js (1.08MB) 耗时 | gzip | |------|---------------------|------| | 内网 10.1.1.170:5001 | 19ms | ✅ | | VPN直连 10.20.1.170:5001 | 3-10秒 | ✅ | | Nginx代理 web.gw.zgitm.com | 20-40秒 | ❌ 丢失 | - **根因**: 10.20.1.170 上的 Nginx 返回 gzip 压缩内容,但 10.20.1.160 Nginx 代理时丢失了 gzip 压缩,导致 1MB+ 文件通过窄带宽 VPN 原样传输 - **Ping延迟**: 5-15ms(正常),**不是延迟问题是带宽+压缩问题** - **修复方案**: 在 10.20.1.160 Nginx 配置中添加 `proxy_set_header Accept-Encoding "gzip"` 和/或开启本地 gzip — 用户自行修复 ## 重要信息 - VPN 网关: 10.20.1.1(阿里云) - VPN 子网: 10.20.1.x - 前端服务: 10.20.1.170:5001(内网 10.1.1.170:5001) - Nginx 代理: 10.20.1.160 - DNS 服务器: 10.20.1.150 - 公网 IP: zgitm.com → 8.133.197.85 - 生产前端域名: web.gw.zgitm.com, login.user.zgitm.com - Nginx 版本: 160 上是 1.14.1,170 上是 1.30.2 ### 共享静态资源域名 — 解决 login/web 双域名重复加载 - **问题**: login.user.zgitm.com 登录后跳转 web.gw.zgitm.com,同一份 JS/CSS 被两个域名各自下载一次 - **方案**: Vite 构建设置 `base` 为统一静态域名,HTML 中资源 URL 用绝对路径 - **第一版**: `http://web.wg.static.zgitm.com:5001/` — 遇到 Mixed Content 问题(HTTPS 页面加载 HTTP 资源被浏览器拦截) - **最终版**: `https://web.gw.zgitm.com/` — 复用已有 HTTPS 域名,零额外配置 - **改动文件**: - `vite.config.ts` — 引入 loadEnv,build 时 base 读取 VITE_STATIC_URL,dev 回退 '/' - `.env.production` — 新增 `VITE_STATIC_URL=https://web.gw.zgitm.com/` - **效果**: login 域名首次下载资源后,跳转到 web 域名时浏览器缓存直接命中,0 网络请求 ## 待处理 - [ ] 重新 `npm run build` + 部署后验证效果 - [ ] 如果后续还慢,考虑 Vite 拆包 Element Plus 按需加载 - [ ] 考虑 160 Nginx 升级 gzip 压缩级别