# ============================================================================= # iAOP nginx 片段:将 /fba/ 前缀反代到 FBA 后端(127.0.0.1:8001) # # 用法:由运维将本文件 include 进现有 iAOP 站点的 server 块 # (与 8090 现有 location 并列),例如: # # server { # listen 8090; # ... 现有 iAOP 配置 ... # include /opt/apps/iAOP/deploy/fba/nginx-fba.conf; # } # # 路径映射:/fba/api/v1/auth/login → http://127.0.0.1:8001/api/v1/auth/login # 说明:FBA 后端所有接口都在 /api/v1 之下,FBA UI 请求形如 # ${VITE_GLOB_API_URL}/api/v1/...,因此部署 FBA UI 时应将其 # VITE_GLOB_API_URL 配置为 https://<域名>/fba # ============================================================================= location /fba/ { # 去掉 /fba 前缀后转发 proxy_pass http://127.0.0.1:8001/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # FBA 登录/刷新 token 走 cookie + bearer,允许凭据 proxy_http_version 1.1; proxy_set_header Connection ""; # 上传接口(sys/files)可能较大 client_max_body_size 50m; proxy_read_timeout 60s; } # ============================================================================= # Phase 3:FBA UI 静态站点(用户/角色/菜单/日志管理界面) # # 部署:将 deploy/fba/artifacts/fba-ui-dist.tar.gz 解压到 # /opt/apps/iAOP/deploy/fba/fba-ui/(解压后应存在 fba-ui/dist/index.html) # tar -xzf deploy/fba/artifacts/fba-ui-dist.tar.gz -C deploy/fba/fba-ui/ # # 产物构建参数(已固化在包内): # VITE_BASE=/fba-admin/ # VITE_GLOB_API_URL=http://39.101.182.167:8090/fba # 入口:http://39.101.182.167:8090/fba-admin/ # ============================================================================= location /fba-admin/ { alias /opt/apps/iAOP/deploy/fba/fba-ui/dist/; index index.html; # SPA 路由回退(hash 模式下 mostly 用不到,兜底) try_files $uri $uri/ /fba-admin/index.html; # 带 hash 的静态资源长缓存;index.html 不缓存 location ~* \.(js|css|png|jpg|jpeg|gif|svg|woff2?)$ { expires 7d; add_header Cache-Control "public"; } location = /fba-admin/index.html { add_header Cache-Control "no-cache"; } } # ============================================================================= # 推理通道(iAOP LLM 网关) # # issue #188:推理服务真实路径即 :30800/v1/*(/v1/models、/v1/chat/completions、 # /v1/health),故 nginx 反代 /v1/ 时 proxy_pass 带 / —— 不去前缀,直接透传, # 消除前端「拼出 /v1/v1 靠 rewrite 巧合耦合」的隐式依赖。 # 前端 infer.ts BASE_URL 为空串,统一写 /v1/models、/v1/chat/completions、/v1/health。 # ============================================================================= location /v1/ { proxy_pass http://127.0.0.1:30800/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; client_max_body_size 20m; proxy_read_timeout 120s; }