获取外网ip 与nginx的7层代理

来源:14-4 nginx负载均衡技术精讲(下)

stevenfung

2020-09-28

你好 老师,
我有2个问题:
1
我用nginx01作一个反向代理,这台nginx假设内网ip为192.168.22.101
我再用两台nginx作php的web服务,分别是nginx02,nginx03。当这两台web服务想获取客户使用的外网ip时,就是tp6门面的Request::ip()方法 获取的总是192.168.22.101。如何处理?
是否我没有加以下代码:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
这三行代码是什么意思?

2
我能够实现nginx的4层反向代理。其实就是根据IP+端口来实现代理,不理会应用层的内容
那如何实现7层反向代理?
是否根据url不同来代理到不同的服务?
url不同是否可以认为使用二级域名也是一个7层代理?

写回答

2回答

爱因诗贤

2021-05-06

//img.mukewang.com/szimg/6093b865090f6ac812780556.jpg

给个demo给你

0
0

爱因诗贤

2021-05-06

$remote_addr 是一个Nginx的内置变量,可以给上游传递客户端真实 IP

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

这三个就是设置HTTP头部,这个应该也属于七层的

0
0

全流程开发 TP6.0实战高并发电商服务系统

一课就能掌握TP6.0基础及运用,打造完整高并发的电商后端项目

1463 学习 · 1332 问题

查看课程