Nginx代理实现内网主机访问公网服务 您所在的位置:网站首页 nginx不能访问外网 Nginx代理实现内网主机访问公网服务

Nginx代理实现内网主机访问公网服务

2023-11-07 02:57| 来源: 网络整理| 查看: 265

通过Nginx代理实现内网主机访问公网和接口服务

1.需求:

  m2.test.com为公司测试环境的微信测试域名,因为要调用微信服务接口需要访问外网,现通过Nginx代理现实此功能.

2.环境如下:

10.20.9.31 为内网测试环境Nginx的代理主机,代理测试环境的java程序. 10.100.64.18 是Nginx反向代理主机,公网映射地址为:124.251.12.198,在此上面配置的域名通过解析后可以直接访问公网. 10.100.230.10 也是Nginx的代理主机,通过NAT转发实现内网测试(10.20.9.31)和机房主机(10.100.230.10)的互通,其中10.100.64.18和10.100.230.10是互通的.

3.实现步骤:

10.100.64.18 Nginx配置:

server { listen 80; server_name m2.test.com; access_log /tmp/access.log main; error_log /tmp/error.log; location / { proxy_pass http://10.100.230.10:80; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For } } #80和443端口都代理到230.10:80主机上面去.

10.100.230.10 Nginx配置

server { listen 80; server_name m2.test.com; access_log /tmp/access.log main; error_log /tmp/error.log; location / { proxy_pass http://10.20.9.31:80; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } #这个直接代理的是测试环境Nginx代理主机,也可以直接代理后端测试环境java主机,但是建议直接代理后端Nginx主机,然后再内网Nginx代理内网测试java程序,已方便维护.

10.20.9.31 Nginx配置,代理测试环境java主机程序.

server { listen 80; server_name m2.test.com; access_log /tmp/access.log main; error_log /tmp/error.log; location / { proxy_pass http://10.20.9.53:8009; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location /static { alias /opt/mobile/static; } } #这个代理就可以对后端程序进行代理和设置

实现dns解析地址

m2.test.com 124.251.12.198,这样就实现了通过代理实现内网访问公网的服务.

 

 结语:上面的方法实现就Ngnix代理走了三次,其实也可以直接在10.100.64.18主机做NAT地址转发访问10.20.9网段的地址,少走一层代理维护也方便.

 

 

  

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有