配置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;

dawei

【声明】:淮南站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。