带有 X_Forwarded 和 HAProxy 的 Nginx HttpGeoIPModule

带有 X_Forwarded 和 HAProxy 的 Nginx HttpGeoIPModule

是否可以让 Nginx HttpGeoIPModule 使用通过 HAProxy 发送的 X_Forwarded IP?目前它只是使用了错误的服务器 IP,但不确定如何让 Nginx 使用 X_Forwarded IP。

有任何想法吗?

答案1

您是否尝试过使用 RealIPModule 并将 X-Real-IP 设置为 X-Forwarded-For

您必须在编译时传递 --with-http_realip_module 来构建模块,因为它不是默认构建的。

http://wiki.nginx.org/HttpRealIpModule

答案2

Sameer 的回答是正确的。

您需要使用 --with-http_realip_module 选项配置和编译 Nginx。

然后在 Nginx 配置中设置以下选项:

set_real_ip_from 1.2.3.4;

real_ip_header X-Forwarded-For;

其中 1.2.3.4 是 HAProxy 的 IP 地址

在 HAProxy 中,您需要以下选项:

option httpclose

option forwardfor

我发现这个网站很有帮助:http://www.somerorbay.com/vps-and-dedicated/nginx-behind-haproxy-x-forwarded-for-getting-real-client-ip

答案3

另一个选项是在透明模式下运行 HA Proxy,这样所有 IP 都会正确显示。通常需要对 IP 表进行一点“调整”才能使其工作,但值得付出努力。

相关内容