如下图所示,客户端通过Nginx Proxy1 和 Nginx Proxy2 两层反向代理才访问到具体服务Nginx Backend(或如Tomcat服务)。那Nginx Backend如何才能拿到真实客户端IP呢?

接下来我们来看看如何才能获取到客户端真实IP。
场景1
场景1是很简单的场景,Nginx Proxy直接把请求往后转发,没有做任何处理。
Nginx Proxy
192.168.107.107 nginx.conf
location /test {
proxy_pass http://192.168.107.112:8080;
}
192.168.107.112 nginx.conf
location /test {
proxy_pass http://192.168.107.114:8080;
}
Nginx Proxy就是简单的把请求往后转发。
Nginx Backend
192.168.107.114 nginx.conf
location /test {
default_type text/html;
charset gbk;
echo "$remote_addr || $http_x_forwarded_for";
}
Nginx Backend输出客户端IP($
反向代理与获取真实客户端IP:X-Real-IP与X-Forwarded-For解析

本文介绍了在多层反向代理环境中,如何通过Nginx配置获取真实客户端IP。讨论了X-Real-IP、X-Forwarded-For请求头的使用,以及使用http_realip_module模块来确定真实IP的方法,强调了防止客户端伪造IP的重要性。
最低0.47元/天 解锁文章
354

被折叠的 条评论
为什么被折叠?



