NGINX没有正确设置X-Forwarded-For

时间:2016-12-15 13:20:47

标签: node.js http nginx ip x-forwarded-for

我有一台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地址(每次都是一个不同的地址)。可能是这个问题的根源是什么?

1 个答案:

答案 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