内网nginx代理高德问题
A为外网服务器
#内网调用互联网高德地图
server {
listen 8090;
large_client_header_buffers 4 128k;
client_max_body_size 100m;
client_body_buffer_size 100m;
client_header_buffer_size 100m;
client_body_timeout 60s;
location / {
proxy_pass https://webapi.amap.com; #默认/还是不配置proxy_pass比较好,我觉得
}
location /webapi/ {
proxy_pass https://webapi.amap.com/;
}
location /restapi/ {
proxy_pass https://restapi.amap.com/;
}
location /vdata/ {
proxy_pass https://vdata.amap.com/;
}
location /vdata01/ {
proxy_pass https://vdata01.amap.com/;
}
location /vdata02/ {
proxy_pass https://vdata02.amap.com/;
}
location /vdata03/ {
proxy_pass https://vdata03.amap.com/;
}
location /vdata04/ {
proxy_pass https://vdata04.amap.com/;
}
location /webst01 {
proxy_pass https://webst01.is.autonavi.com/;
}
location /webst02 {
proxy_pass https://webst02.is.autonavi.com/;
}
location /webst03 {
proxy_pass https://webst03.is.autonavi.com/;
}
location /webst04 {
proxy_pass https://webst04.is.autonavi.com/;
}
location /wprd01 {
proxy_pass https://wprd01.is.autonavi.com/;
}
location /wprd02 {
proxy_pass https://wprd02.is.autonavi.com/;
}
location /wprd03 {
proxy_pass https://wprd03.is.autonavi.com/;
}
location /wprd04 {
proxy_pass https://wprd04.is.autonavi.com/;
}
}
估计问题还是出在location匹配后面的/问题,有时间多研究研究location代理,很麻烦
内网服务器通过15.72.191.145:18090访问外网机器的8090端口
B为内网服务器
nginx配置
server {
listen 8081;
server_name 15.72.185.21;
location /webapi/ {
proxy_pass http://15.72.191.145:18090/;
}
location /restapi {
proxy_pass http://15.72.191.145:18090/restapi/;
}
location /maps { #通过sub模块修改maps自动调用高德外网的域名改为内网ip端口
proxy_set_header Accept-Encoding "";
proxy_pass http://15.72.191.145:18090/maps/;
sub_filter_types *;
sub_filter_once off;
sub_filter 'http://webapi.amap.com' 'http://15.72.191.145:18090/webapi';
sub_filter 'https://webapi.amap.com' 'http://15.72.191.145:18090/';
sub_filter 'http://restapi.amap.com' 'http://15.72.191.145:18090/restapi';
sub_filter 'http://vdata.amap.com' 'http://15.72.191.145:18090/vdata';
sub_filter 'vdata.amap.com' '15.72.191.145:18090/vdata';
sub_filter 'vdata0{1,2,3,4}.amap.com' '15.72.191.145:18090/vdata0{1,2,3,4}';
sub_filter '{vdata,vdata01,vdata02,vdata03,vdata04}.amap.com' '15.72.191.145:18090/{vdata,vdata01,vdata02,vdata03,vdata04}';
sub_filter 'webapi.amap.com/count' '15.72.191.145:18090/count';
sub_filter 'wprd0{1,2,3,4}.is.autonavi.com' '15.72.191.145:18090/wprd0{1,2,3,4}';
sub_filter 'webapi.amap.com/theme' '15.72.191.145:18090/theme';
sub_filter 'restapi.amap.com/v4' '15.72.191.145:18090/restapi/v4';
sub_filter 'webapi.amap.com/style' '15.72.191.145:18090/style';
sub_filter 'https' 'http';
}
location /vdata {
proxy_pass http://15.72.191.145:18090/vdata/;
}
location /vdata01 {
proxy_pass http://15.72.191.145:18090/vdata01/;
}
location /vdata02 {
proxy_pass http://15.72.191.145:18090/vdata02/;
}
location /vdata03 {
proxy_pass http://15.72.191.145:18090/vdata03/;
}
location /vdata04 {
proxy_pass http://15.72.191.145:18090/vdata04/;
}
}
webapi注意 / ,可能是我对nginx的location匹配规则还不熟悉,大坑,目前这么配置是能成功访问高德的
最近发现通过此方法配置的代理会报跨域问题,又修改了下。
访问15.72.185.21的地图调用的15.72.191.145:18090报跨域,于是在185.21的nginx的sub_filter模块配置将15.72.191.145:18090改成了15.72.185.21:8081。
location /maps {
proxy_set_header Accept-Encoding "";
proxy_pass http://15.72.191.145:18090/maps/;
sub_filter_types *;
sub_filter_once off;
sub_filter 'http://webapi.amap.com' 'http://15.72.185.21:8081/webapi';
sub_filter 'https://webapi.amap.com' 'http://15.72.185.21:8081/webapi';
sub_filter 'http://restapi.amap.com' 'http://15.72.185.21:8081/restapi';
sub_filter 'http://vdata.amap.com' 'http://15.72.185.21:8081/vdata';
sub_filter 'vdata.amap.com' '15.72.185.21:8081/vdata';
sub_filter 'vdata0{1,2,3,4}.amap.com' '15.72.185.21:8081/vdata0{1,2,3,4}';
sub_filter 'webrd0{1,2,3,4}.is.autonavi.com' '15.72.185.21:8081/webrd0{1,2,3,4}';
sub_filter '{vdata,vdata01,vdata02,vdata03,vdata04}.amap.com' '15.72.185.21:8081/{vdata,vdata01,vdata02,vdata03,vdata04}';
sub_filter 'webapi.amap.com/count' '15.72.185.21:8081/webapi/count';
sub_filter 'wprd0{1,2,3,4}.is.autonavi.com' '15.72.185.21:8081/wprd0{1,2,3,4}';
sub_filter 'webapi.amap.com/theme' '15.72.185.21:8081/webapi/theme';
sub_filter 'restapi.amap.com/v4' '15.72.185.21:8081/restapi/v4';
sub_filter 'restapi.amap.com/v3' '15.72.185.21:8081/restapi/v3';
sub_filter 'webapi.amap.com/style' '15.72.185.21:8081/webapi/style';
sub_filter 'https' 'http';
}
这样访问15.72.185.21:8081的地图代理走的也是15.72.185.21:8081
本帖子也是纯手工制作,转载请标明出处-----------burukku(づ。◕ᴗᴗ◕。)づ
分类:
【Nginx】
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构