2

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

4

1 回答 1

2

文档中,$proxy_add_x_forwarded_for变量包括:

附加了 $remote_addr 变量的“X-Forwarded-For”客户端请求标头字段,以逗号分隔。

如果客户端请求标头中不存在“X-Forwarded-For”字段,则 $proxy_add_x_forwarded_for 变量等于 $remote_addr 变量。

由此我们可以得出结论,nginx收到了来自某个远程客户端(可能是转发代理)的请求,请求标头为:

X-Forwarded-For: unknown
于 2016-12-15T13:54:15.600 回答