# 若依前后端部署Nginx配置 # 复制此内容到 C:\nginx\conf\nginx.conf 的 http 块中 server { listen 80; server_name localhost; # 前端静态文件 location / { root html; # 指向 C:\nginx\html(前端dist文件) index index.html index.htm; try_files $uri $uri/ /index.html; } # ========== 外部 API 反向代理 ========== # 客户浏览器只访问公司服务器一个域名,避免跨域 + 天地图 tk Referer 白名单 + 客户出口防火墙三重问题 # 对应前端 vite.config.js 的 server.proxy 配置和 server_config.js 的 PROXY_* 常量 # 注意:location 前缀必须与 server_config.js 中的 PROXY_SLT/PROXY_TIANDITU_TILE/PROXY_TIANDITU_API 完全一致 # proxy_pass 末尾必须带 /,Nginx 才会去掉 location 前缀转发(如 /proxy/slt/Api/LastWind → /Api/LastWind) # 浙江水情台风 API(风场/降雨/云图/雷达) location /proxy/slt/ { proxy_pass https://typhoon.slt.zj.gov.cn/; proxy_set_header Host typhoon.slt.zj.gov.cn; 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; proxy_ssl_server_name on; proxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; } # 天地图地理编码 API location /proxy/tianditu-api/ { proxy_pass https://api.tianditu.gov.cn/; proxy_set_header Host api.tianditu.gov.cn; 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; proxy_ssl_server_name on; } # 天地图瓦片(img_c / cia_c) # Referer 头必填:天地图 WAF 会拦截无 Referer 的请求返回 418 location /proxy/tianditu/ { proxy_pass https://t0.tianditu.gov.cn/; proxy_set_header Host t0.tianditu.gov.cn; proxy_set_header Referer "https://tianditu.gov.cn/"; 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; proxy_ssl_server_name on; } # 后端API代理 - 关键配置 location /prod-api/ { proxy_pass http://localhost:8080/prod-api/; # 代理到后端 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; # 超时设置 proxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; } # 上传文件访问 location /uploads/ { proxy_pass http://localhost:8080/uploads/; # 代理到后端 autoindex on; } # profile文件访问(自定义服务GeoJSON等) location /profile/ { proxy_pass http://localhost:8080/prod-api/; # 代理到后端(带context-path) 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; } # 错误页面 error_page 404 /index.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }