在我维护的一个启用了 nginx 的网站上,一些访问者位于某个正向代理后面。由于请求通过代理服务器,因此在这些情况下,HTTP 请求 IP 地址始终来自代理服务器,而不是来自原始请求者。
但是,代理会确保将原始请求者 IP 包含在名为 X-IORG-FBS-UIP 的单独 HTTP 标头字段中。它也可以在 X-FORWARDED-FOR 中找到。
在 nginx 访问日志中,我注意到所有这些用户显示的都是代理 IP,而不是真实 IP。如何配置 nginx,以便 nginx 记录原始请求者 IP,而不是代理 IP?最好能举个例子;提前谢谢!
我的 nginx 版本是 1.4.6
答案1
这是使用设置真实IP地址更新$remote_addr基于自定义标头的变量。例如,可以按如下方式创建,以基于和代理的请求的标头/etc/nginx/conf.d/proxies_acl.conf
设置客户端 IP 变量:X-IORG-FBS-UIP
1.2.3.0/22
23.22.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;