配置nginx以记录原始请求者IP(而不是转发代理的IP)

前端之家收集整理的这篇文章主要介绍了配置nginx以记录原始请求者IP(而不是转发代理的IP)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在我维护的一个支持Nginx的网站上,一些访问者支持某个转发代理.由于请求通过代理服务器,因此在这些情况下,HTTP请求IP地址始终来自代理服务器而不是原始请求者.

但是,代理确保将原始请求者IP包含在名为X-IORG-FBS-UIP的单独HTTP头字段中.它也可以在X-FORWARDED-FOR中找到.

Nginx访问日志中,我注意到代理IP是为所有这些用户显示的,而不是真正的IP.如何配置Nginx,使得原始请求者IP由Nginx记录,而不是代理?一个说明性的例子会很棒;提前致谢!

附:我的Nginx是v 1.4.6

最佳答案
这是使用set_real_ip_from基于自定义标头更新$remote_addr变量来完成的.例如,可以按如下方式创建/etc/Nginx/conf.d/proxies_acl.conf,以便为1.2.3.0/22和23.22代理的请求基于X-IORG-FBS-UIP标头设置客户端IP变量. 20.0 / 22:

set_real_ip_from 1.2.3.0/22;
set_real_ip_from 23.22.20.0/22;
real_ip_header X-IORG-FBS-UIP;

猜你在找的Nginx相关文章