项目需求:A服务器在内网,不能访问互联网,B服务器在外网,可以访问互联网,客户端电脑只能访问A服务器,客户端电脑怎么访问高德地图?

实现思路:客户端访问A服务器,A再访问B服务器,B请求高德地图api js并返回给A服务器,A服务器nginx安装ngx_http_sub_module模块,将api js中的所有域名替换成自己的代理地址再返回给客户端

注意事项:

1、下面配置只实现了基本的地图功能,如需实现更复杂的功能,还需代理如下地址

http://www.w3.org、https://gaode.com、http://m.amap.com、http://vector.amap.com、http://a.amap.com

2、http://vdata.amap.com/style_icon/icon-normal-small.png 、http://vdata.amap.com/style_icon/icon-biz-small.png 这两个图片集是在动态脚本中访问的,所以需要将eval(b)和eval(fd)中的脚本替换一下

3、如果客户端电脑可以直接访问B服务器的话,可以将两个配置文件合并,只在B服务器安装一个nginx即可

A服务器nginx配置:

server {listen       8080;server_name  localhost;location /maps  {proxy_set_header Accept-Encoding "";proxy_pass http://B服务器ip:8080/maps;sub_filter_types *;sub_filter_once off;sub_filter 'http://webapi.amap.com' 'http://B服务器ip:8080/webapi';sub_filter 'http://restapi.amap.com' 'http://B服务器ip:8080/restapi';sub_filter 'http://vdata.amap.com' 'http://B服务器ip:8080/vdata';sub_filter '/webapi.amap.com' '/B服务器ip:8080\/webapi';sub_filter '/restapi.amap.com' '/B服务器ip:8080\/restapi';sub_filter '/vdata.amap.com' '/B服务器ip:8080\/vdata';sub_filter 'webapi.amap.com' 'B服务器ip:8080/webapi';sub_filter 'restapi.amap.com' 'B服务器ip:8080/restapi';sub_filter 'vdata.amap.com' 'B服务器ip:8080/vdata';sub_filter 'wprd0{1,2,3,4}.is.autonavi.com' 'B服务器ip:8080/wprd0{1,2,3,4}';sub_filter 'eval(b)' 'eval(b.replace(/vdata\.amap\.com/g,"B服务器ip:8080/vdata"))';sub_filter 'eval(fd)' 'eval(fd.replace(/vdata\.amap\.com/g,"B服务器ip:8080/vdata"))';}location / {proxy_pass http://172.16.10.180:8080;}
}

B服务器nginx配置:

server {listen       8080;server_name  localhost;location /maps {resolver 8.8.8.8;set $backend "webapi.amap.com";proxy_pass http://$backend;}location ~* ^/webapi(.*) {resolver 8.8.8.8;set $backend "webapi.amap.com";proxy_pass http://$backend$1$is_args$args;}location ~* ^/restapi(.*) {resolver 8.8.8.8;set $backend "restapi.amap.com";proxy_pass http://$backend$1$is_args$args;}location ~* ^/vdata(.*) {resolver 8.8.8.8;set $backend "vdata.amap.com";proxy_pass http://$backend$1$is_args$args;}location ~* ^/wprd0(\d*)/(.*) {resolver 8.8.8.8;set $backend "is.autonavi.com";proxy_pass http://wprd0$1.$backend/$2$is_args$args;}
}

内网访问高德地图nginx代理相关推荐

  1. Nginx 配置内网访问树莓派4 ASP.NET Core 3.0 网站

    喜迎国庆 点击上方蓝字关注"汪宇杰博客" 导语 前几天发了两篇< 能跑就行:Kestrel Hosting 如果你的要求只是临时内网访问,可以只用 Kestrel 来承载 W ...

  2. Nginx实现 内网访问外网https页面资源的解决方案

    项目场景: 在开发过程中,有遇到在内网环境下 需要访问外网 https页面.遇到这个需求也是比较不好做.经过查询资料和调试最终完成功能. 问题描述 解决思路 : 通过 nginx 反向代理来实现 原因 ...

  3. Proxifier Socks5 代理(内网访问、远程办公)

    适用场景 远程(在家)办公,访问公司内网 资源下载 代理工具 Proxifier: https://pan.baidu.com/s/13NoMcp1F03GXWt90PzsgPA 提取码: 8d3d ...

  4. 内网Linux服务器如何通过代理方式访问外网

    在目前5G网络和互联网高速发展的时代,还有云计算的普及,但是考虑到很多安全的因素考虑,在现实工作中,很多时候需要脱离外网进入linux,这样导致工作的效率大幅度减低,下面介绍几种通过代理的方式访问内网 ...

  5. 阿里云oss 使用, 基于Nginx 配置云服务器+oss的内网访问 , 及使用Java SDK 完成上传,下载,删除,查询文件列表操作

    一.同阿里产品,云服务器和存储对象oss-配置内网访问 阿里存储对象oss 地址: https://oss.console.aliyun.com/overview 配置须知 通过Nginx 进行网络转 ...

  6. 华为云在Linux ECS上使用obsutil通过内网访问OBS

    obsutil是适用于Windows.macOS和Linux操作系统的命令行工具,支持通过配置内网DNS服务器地址的方式,使在华为云上的Linux ECS通过内网直接访问OBS,下面将介绍其具体操作流 ...

  7. 内网linux服务器通过CCproxy代理上网

    内网linux服务器通过CCproxy代理上网 安装CCproxy软件 配置网络代理端口 设置 账号 服务器端 本教程记录了通过局域网内能访问外网的Windows平台,使用CCproxy代理使内网节点 ...

  8. iptables学习笔记:端口转发之“内网访问外网”

    我们一般使用路由上网,本机IP是内网私有IP,如192.168.1.100/24,而不是公网IP.至于能上网,是因为路由器已经做了转发.本文以实例介绍地址转换,实现内网设备与外部网络通信.有了前文的介 ...

  9. Vue 预览word,excel,ppt等office文档-内网访问(基于onlyoffice,后端返回文件流)

    Vue 预览word,excel等office 先看效果!! 需求背景:在前端页面中预览office文件且是内网访问,服务器不可访问外网的前提. 因此微软的接口就废掉了,因为他接口的条件是可以访问外网 ...

  10. tomcat manager 禁止外网访问 只容许内网访问

    参考:http://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html A default Tomcat installation includes ...

最新文章

  1. tomcat自启动问题 jsvc的 使用
  2. 揭秘星际2人工智能AlphaStar:DeepMind科学家回应一切
  3. java 泛型例子_java中的泛型的一些常见例子
  4. 等值连接_干货:16种等值线图的解读与应用,用快速规律解题
  5. 【测试工程师面试】面试官热衷询问的N个问题
  6. 私有属性和方法-子类对象不能直接访问
  7. host文件知识详解
  8. C# 课堂总结2-数据类型及转换方式
  9. 华为鸿蒙os2.0系统何时搭载手机,鸿蒙OS 2.0系统正式发布!余承东:明年华为系手机将会搭载...
  10. 荣耀50 Pro+配置参数曝光:AMOLED高刷屏+骁龙888旗舰芯片
  11. android 网络连接判断
  12. DXUT实战2:HLSL(withoutEffect)+D3D9+DXUT(june_2010) .
  13. 第1章 数据库系统概论---数据库原理及应用
  14. lamp一键安装包不安装mysql_LAMP一键安装包安装与配置
  15. 中国联通家庭网关破解管理员账户
  16. 你是如何转行的?转行容易吗? 1
  17. 荣耀play4tpro有没有鸿蒙,荣耀Play4Tpro有没有耳机孔?
  18. php文本框添加表情,仿微信在对话框文字中插入Emoji表情包
  19. EasyPoi 导出表格并设置表头
  20. 首屏渲染优化性能优化

热门文章

  1. 单表置换加密matlab,单表置换密码
  2. 参与流片是一种怎样的体验
  3. 科学网—世界上最神奇的30个经典定律——读书笔记 - 贾琳的博文 http://blog.sciencenet.cn/blog-455749-859616.html
  4. win10卸载电脑管家就蓝屏_卸载电脑管家时为什么蓝屏
  5. 空间四点定位原理及应用
  6. SVN提交时出现remains in conflict错误
  7. js实现逐行打字,逐段打字效果(最全)
  8. Yii中处理前后台登录新方法 | 饭饭博客
  9. docker使用阿里云的镜像加速器的地址
  10. OceanBase数据库实践入门——手动搭建OceanBase集群