nginx http_realip_module 被高级安全防护设备代理后,获取用户端真实IP,并通过真实IP负载均衡转发到后端应用

Posted ddzfeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx http_realip_module 被高级安全防护设备代理后,获取用户端真实IP,并通过真实IP负载均衡转发到后端应用相关的知识,希望对你有一定的参考价值。

场景:

在甲方的环境现场,原有环境是从防火墙映射下来的公网IP到我的nginx负载均衡,nginx到后端多台realserver应用服务器,使用上并未发现异常情况,负载均衡的分发也算正常,nginx采用的ip_hash的算法进行调度。但是机房因为等级保护原因,使用了某厂家的7层防护硬件设备(其实也是一个代理服务),导致我nginx上识别的IP均为代理设备的IP,此时,因为nginx识别客户端IP为硬件防护设备的,导致不再向其他real server应用服务器调度分发,导致单点压力过大,其他主机闲置。

与厂商沟通无法解决该问题,后沟通想从nginx上入手解决,考虑采用http_realip_module模块告诉nginx客户端的真实IP存放在real_ip_header里X-Forwarded-For请求头中,让nginx能识别客户端真实IP,恢复nginx的调度分发能力。

 

nginx的主要配置

set_real_ip_from 硬件防护设备的IP(nginx识别的真实来访iP);
real_ip_header X-Forwarded-For;
real_ip_recursive on;

 

经过测试和上线使用,已经满足业务需求。

以上是关于nginx http_realip_module 被高级安全防护设备代理后,获取用户端真实IP,并通过真实IP负载均衡转发到后端应用的主要内容,如果未能解决你的问题,请参考以下文章

百度云BLB后NGINXTOMCAT获取真实IP

阿里云SLB后NginxTomcat获取真实IP

原创多层nginx反向代理,如何获取客户端的真实IP地址

天翼云增强型弹性负载均衡ELB转发流量至nginx后无法获取客户端真实ip

使用LVS或者阿里云的SLB后如何获取访客真实的IP地址

阿里云日志能取到ip吗