背景
在一些如支付宝回调、微信小程序回调等的场景,需要内网环境能够暴露出接口服务给第三方程序来调用。
内网穿透工具
- 花生壳(可在tplink路由器配置)
- ngrok
反向代理
nginx配置:
upstream servers_port_redirect {
server 192.168.1.171:8729 backup;
server 192.168.1.152:8026;
}
server {
listen 8729;
location ~* / {
proxy_pass http://servers_port_redirect;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 20m;
client_body_buffer_size 1128k;
proxy_connect_timeout 11190;
proxy_send_timeout 11120;
proxy_read_timeout 11120;
proxy_buffer_size 1114k;
proxy_buffers 4 1132k;
proxy_busy_buffers_size 1164k;
proxy_temp_file_write_size 1164k;
proxy_ignore_client_abort on;
add_header Pragma "no-cache";
add_header Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0";
}
}
路由器的虚拟服务器映射
补充说明
后续通过更改nginx的server列表和backup负载均衡策略,以及子路由器mall的虚拟服务器配置就可以将外网ip端口映射到内网任意ip端口了(包括网线主网段192.168.1.X和子路由器子网段192.168.8.X)。
- 总体流程:交换机总路由器[ -> nginx [-> 子路由器]] -> 开发人员机器
- 前端人员A:http://192.168.1.152:8026/#/home
- 后端人员B:http://192.168.8.109:8729/
- 内网服务器248:http://192.168.1.248:8729/#/home
- 公司外网独立ip186:http://115...186:8729/
来源:oschina
链接:https://my.oschina.net/wnjustdoit/blog/4462825