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;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了