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 @ 2023-10-23 20:59  进城民工  阅读(719)  评论(0)    收藏  举报