我有一台NGINX服务器充当其他几台服务器的负载均衡器。由于我需要访问用户的IP地址,因此我将以下行添加到我的nginx配置中:
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
然后,在后端服务器中,我只使用X-Forwarded-For标头中的第一个IP地址。但是,每隔几分钟(每次~2K请求一次),我会得到unknown, xxx.xxx.xxx.xxx
作为标头的值,其中xxx.xxx.xxx.xxx
是一个IP地址(每次都是一个不同的地址)。可能是这个问题的根源是什么?
答案 0 :(得分:2)
来自the documentation,$proxy_add_x_forwarded_for
变量包含:
“X-Forwarded-For”客户端请求标头字段 附加了$ remote_addr变量,用逗号分隔。
如果客户端请求中不存在“X-Forwarded-For”字段 标头,$ proxy_add_x_forwarded_for变量等于 $ remote_addr变量。
由此我们可以得出结论:nginx
收到了来自某个远程客户端(可能是转发代理)的请求,其请求标头为:
X-Forwarded-For: unknown