我有一个 nginx 反向代理(服务器 A)在另一个 nginx 服务器(B)前面运行。
然而,A 似乎没有正确地将 IP 传递给服务器 B。
尽管我已经
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
我的配置中的这些行。
我知道对于 Apache 来说,只需加载 RPAF 模块。
nginx 有类似的东西吗?
干杯
答案1
这里有一个很好的模块概述:http://wiki.nginx.org/Modules 具体来说,你需要这个:http://wiki.nginx.org/HttpRealIpModule
答案2
对于您所说的“未传递 IP”的含义(您看到的是错误的 IP 以及您期望的结果),提供更多细节会很有帮助。
我要冒险说一下,您可能在日志中看到的是反向代理的地址而不是客户端的地址 - 您可以更改日志格式以显示标题的内容X-Forwarded-For
(下面的示例是对默认组合格式的调整):
log_format proxied_combined '$http_x_forwarded_for - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
access_log logdir/access.log proxied_combined;