Ich verwende ein Nginx-Frontend für statische Dateien und einen Proxy für ein Apache-Backend für PHP und Passenger. Dabei verwende ich Apaches mod_rpaf, um die richtige Remote-IP-Adresse im Backend festzulegen. Alles hat gut funktioniert, bis ich auf Ubuntu 12.04 (Precise) aktualisiert habe. Jetzt meldet Apache alle Verbindungen, die von 127.0.0.1 kommen.
Hier ist die entsprechende Konfiguration. Hier hat sich mit dem Upgrade nichts geändert.
Nginx:
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
mod_rpaf:
<IfModule mod_rpaf.c>
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1 ::1
RPAFheader X-Forwarded-For
</IfModule>
Ich verwende %{X-Forwarded-For}i
in meiner Apache LogFormat-Direktive und die Zugriffsprotokolle zeigen die richtige Remote-Adresse an, sodass ich weiß, dass Nginx die Adresse ordnungsgemäß weitergibt.
In einem phpinfo()
Test zeigt HTTP_X_FORWARDED_FOR die richtige Remote-Adresse an, REMOTE_ADDR ist jedoch 127.0.0.1. Dies spiegelt sich auch in PHP-Anwendungen wie WordPress-Kommentaren wider.
Ich habe versucht, Nginx und mod_rpaf ohne Wirkung auf X-Real-IP umzustellen.
Hat sich etwas geändert, das ich verpasst habe?
Relevante Versionsinformationen, alles aus dem Ubuntu-Repository installiert:
Nginx 1.1.19
Apache 2.2.22
mod_rpaf 0.6