nginx 外网ip代理

您所在的位置:网站首页 nginx内外网代理 nginx 外网ip代理

nginx 外网ip代理

2022-06-11 04:57| 来源: 网络整理| 查看: 265

用nginx一直都不是很明白里面的各种操作,例如反向代理,负载均衡这些操作,都没了解过,就瞎照着网上扔上去一个配置就完事了。 结果,坑就来了。 先说说需求: 一共3个服务器,前端我1个,后端2个。 目的是需要所有的请求都请求到我前端的服务器上,在我前端服务器再次发送请求到后端的两个服务器上,听起来还算简单,但里面有个硬性要求就是。 必须通过内网ip地址访问后端服务器! 必须通过内网ip地址访问后端服务器! 必须通过内网ip地址访问后端服务器! 就是这个需求我直接跪了 先说说跪的原因: 内网ip有个要求,访问者必须在内网里发送请求,但用户是不可能在内网访问的,所以直接用内网的ip地址发送请求是获取不到任何信息的。

那通过内网ip地址发送请求的思路只能是:

用户依旧用外网ip地址发送请求,但所有接口的地址全部都是前端服务器的公网ip。也就是所谓的服务器代理。如图:所有请求都先通过一台服务器,这台服务器再通过内网ip地址访问各个不同的后台服务器。 在这里插入图片描述 理论说了那么多,事实上配置非常简单,只是有各种小坑需要注意。

干货: 1.配置前端所有发接口的地址 http://www.kalec.com/ABIS_ORIGIN http://www.kalec.com/CAS_ORIGIN 在这里插入图片描述

这个配置相当于在你的所有请求都加一个前缀 如图: 每次发请求的请求头都是http://kalec.com/ABIS_ORIGIN/… 在这里插入图片描述

接下来就是nginx服务器配置了:

//打开nginx.conf文件 server { listen 80; server_name kalec.com http://www.kalec.com; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; try_files $uri $uri/ /index.html; } location /ABIS_ORIGIN/ { proxy_set_header Host $host:$server_port; proxy_pass http://172.99.300.122:8099/; } location /CAS_ORIGIN/ { proxy_set_header Host $host:$server_port; proxy_pass http://172.99.200.110:8090/; }

以上就是nginx做的配置,需要记住 “/”这个符号很重要 不能少任何一个,认真看好所有“/”的地方,否则会发送错误的请求地址。

简单解释下配置: 当请求地址带有/ABIS_ORIGIN/的时候,会自动将地址替换成172.99.300.122:8099来发送请求 举例: 请求地址:http://www.kalec.com/ABIS_ORIGIN/order/list?page=1(外网请求地址) 经过nginx转发后:http://172.99.300.122:8099/order/list?page=1(内网请求地址)

到此为止,一个服务器转发内网ip请求的操作就完成啦~感谢观看。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3