Nginx实现内外网穿透

声明:以下内容均收集与互联网,无法保证绝对可用性,请结合自身情况调整验证。

随着网络安全的要求逐步提高,部分应用服务要求部署在内网,但是应用中有需要访问到公网服务,比如发票验真、OCR识别等,可以通过部署在DMZ区的Nginx实现。

假设公网API服务地址为:https://api.myserver.com/ocr/xxxxx
为了应用内接口地址不做调整,或者防止升级还原,采用服务端本地hosts配置方式。
将实际域名地址指向nginx服务IP:/etc/hosts文件中添加xxx.xxx.xxx.xxx api.myserver.com

在Nginx的配置中,增加以下内容:

  server {
        resolver 114.114.114.114;   #DNS地址,按需调整
        listen       443;     #nginx监听端口,这里需要与应用中配置的端口一致
        server_name    api.myserver.com;  #监听请求的地址
        ssl_session_cache   shared:SSL:1m;
        ssl_session_timeout 5m;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;
        location / {
            proxy_pass  https://$http_host$request_uri;  #转发的实际的API接口地址,因为来访地址与服务地址一致,所以直接引用http_host即可,也可固定为API地址。
            root   html;
            index  index.html index.htm;
        }
   }

对于内网应用需要在线下载更新的需求,可按照如下配置,补丁服务地址直接填写Nginx的IP即可

server {
        listen 5000;
        location / {
            proxy_pass  http://11.22.33.44:5000;
        }
  }
server {
        listen 5001;
        location / {
            proxy_pass  http://11.22.33.44:5001;
        }

   }
posted @   进城民工  阅读(640)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示