tuqin
5 天以前 abc1115201eee5b6aff8251683017668514f0466
fix(map): 修正静态资源代理 Host(/sty 在 maponline0 而非 webmap0)

客户诊断页定位到确切原因(第 4 块错误来源抓取):
🚨 百度弹窗: APP Referer校验失败(error 220)
资源加载失败 <SCRIPT> /bmap-webmap/sty/icons_2x.js
资源加载失败 <SCRIPT> /bmap-webmap/sty/fs.js
资源加载失败 <SCRIPT> /bmap-webmap/sty/indoor_fs.js
地图区域已渲染元素数量: 0
即:SDK 加载成功、地图实例创建成功,但渲染依赖的样式脚本全部 404,所以画布空白。

逐域实测(同一 IP 183.204.201.38):
/sty/icons_2x.js webmap0 => 404 maponline0 => 200 (119KB)
/sty/fs.js webmap0 => 404 maponline0 => 200 (1.7MB)
/sty/indoor_fs.js webmap0 => 404 maponline0 => 200 (134KB)
SDK 的 staticHost 指向 webmap0.bdimg.com,但 /sty 资源实际在 maponline0 上。

修复:nginx /bmap-webmap/ 的 Host 由 webmap0.bdimg.com 改为 maponline0.bdimg.com。
修复后经代理全部 200:
/bmap-webmap/sty/fs.js 200 / 1758801B
/bmap-webmap/sty/icons_2x.js 200 / 119563B
/bmap-webmap/sty/indoor_fs.js 200 / 134805B

另:deploy/bmap-proxy.conf 为服务器 nginx 最终配置留档(10 个 location,
9 个带 Referer/Origin 转发),服务器实际路径
/data/nginx-docker/conf/bmap-proxy.conf,由 9023 server 块 include。
已添加1个文件
102 ■■■■■ 文件已修改
deploy/bmap-proxy.conf 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
deploy/bmap-proxy.conf
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,102 @@
    # ---- ç™¾åº¦åœ°å›¾ä»£ç†ï¼šå…¨éƒ¨å¼ºåˆ¶èµ° IPv4 ----
    # å®¢æˆ·ç«¯ç½‘络 IPv6 ä¸é€šï¼Œè€Œç™¾åº¦å„域名的 DNS ä¼˜å…ˆè¿”回 AAAA(IPv6),
    # æµè§ˆå™¨ä¼˜å…ˆè¿ž IPv6 ç«‹å³å¤±è´¥ï¼Œå¯¼è‡´ SDK/瓦片/接口全部加载不出来。
    # è¿™é‡Œç”±æœåŠ¡å™¨ç”¨å›ºå®š IPv4 å›žæºï¼Œå®¢æˆ·ç«¯åªè®¿é—® 9023。
    # SDK ä¸ŽæŽ¥å£ï¼ˆgeocoder æœç´¢ã€worker è„šæœ¬ç­‰ï¼‰
    location /bmap-api/ {
        proxy_pass https://36.144.42.203/;
        proxy_set_header Host api.map.baidu.com;
        proxy_set_header Referer $http_referer;
        proxy_set_header Origin $http_origin;
        proxy_ssl_server_name on;
        proxy_ssl_verify off;
        proxy_connect_timeout 10s;
        proxy_read_timeout 60s;
        proxy_buffering off;
    }
    # åœ°å›¾ç“¦ç‰‡ï¼ˆapimaponline0-3 åŒä¸€ IP,Host å¿…须区分)
    location /bmap-tile0/ {
        proxy_pass https://111.132.36.38/;
        proxy_set_header Host apimaponline0.bdimg.com;
        proxy_set_header Referer $http_referer;
        proxy_set_header Origin $http_origin;
        proxy_ssl_server_name on;
        proxy_ssl_verify off;
        proxy_read_timeout 60s;
    }
    location /bmap-tile1/ {
        proxy_pass https://111.132.36.38/;
        proxy_set_header Host apimaponline1.bdimg.com;
        proxy_set_header Referer $http_referer;
        proxy_set_header Origin $http_origin;
        proxy_ssl_server_name on;
        proxy_ssl_verify off;
        proxy_read_timeout 60s;
    }
    location /bmap-tile2/ {
        proxy_pass https://111.132.36.38/;
        proxy_set_header Host apimaponline2.bdimg.com;
        proxy_set_header Referer $http_referer;
        proxy_set_header Origin $http_origin;
        proxy_ssl_server_name on;
        proxy_ssl_verify off;
        proxy_read_timeout 60s;
    }
    location /bmap-tile3/ {
        proxy_pass https://111.132.36.38/;
        proxy_set_header Host apimaponline3.bdimg.com;
        proxy_set_header Referer $http_referer;
        proxy_set_header Origin $http_origin;
        proxy_ssl_server_name on;
        proxy_ssl_verify off;
        proxy_read_timeout 60s;
    }
    # é™æ€èµ„源(图标、样式、雪碧图)
    location /bmap-sv0/ {
        proxy_pass https://111.132.36.38/;
        proxy_set_header Host apisv0.bdimg.com;
        proxy_set_header Referer $http_referer;
        proxy_set_header Origin $http_origin;
        proxy_ssl_server_name on;
        proxy_ssl_verify off;
        proxy_read_timeout 60s;
    }
    location /bmap-sv1/ {
        proxy_pass https://111.132.36.38/;
        proxy_set_header Host apisv1.bdimg.com;
        proxy_set_header Referer $http_referer;
        proxy_set_header Origin $http_origin;
        proxy_ssl_server_name on;
        proxy_ssl_verify off;
        proxy_read_timeout 60s;
    }
    location /bmap-webmap/ {
        proxy_pass https://183.204.201.38/;
        proxy_set_header Host maponline0.bdimg.com;
        proxy_set_header Referer $http_referer;
        proxy_set_header Origin $http_origin;
        proxy_ssl_server_name on;
        proxy_ssl_verify off;
        proxy_read_timeout 60s;
    }
    # map.baidu.com
    location /bmap-map/ {
        proxy_pass https://112.34.112.45/;
        proxy_set_header Host map.baidu.com;
        proxy_set_header Referer $http_referer;
        proxy_set_header Origin $http_origin;
        proxy_ssl_server_name on;
        proxy_ssl_verify off;
        proxy_read_timeout 60s;
    }
    # æ”¹å†™åŽçš„百度地图 SDK(域名已全部指向本站代理)
    location = /bmap-sdk.js {
        root /data/vue/mom/zyjc/dist;
        add_header Cache-Control "no-cache";
        default_type application/javascript;
    }