mod_rpaf Probleme mit Nginx Front, Apache Backend nach Ubuntu Upgrade

10

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}iin 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

Kenn
quelle

Antworten:

10

Ich habe mich gerade selbst darum gekümmert. Am Freitag wurde ein Ubuntu-Fehler bestätigt. Sie können die Dinge wieder zum Laufen bringen, indem Sie Folgendes ändern:

<IfModule mod_rpaf.c>

zu

<IfModule mod_rpaf-2.0.c>

in /etc/apache2/mods-available/rpaf.conf

Jet-Junge
quelle
Ich hatte nach dem Upgrade auf 12.04 genau das gleiche Problem und verlor einen halben Tag an dem Problem, bevor ich diesen Beitrag fand. Vielen Dank!
Kouber Saparev
Und Fehler selbst, der Vollständigkeit halber: bugs.launchpad.net/ubuntu/+source/libapache2-mod-rpaf/+bug/...
thor
1
Für alle, die nach dem Upgrade auf 14.04 zu diesem Beitrag kommen, gilt dieses Update nicht mehr. stattdessen möchten Sie mod_remoteipanstelle von verwenden mod_rpaf.
Stefan Magnuson
1

mod_rpaf scheint in Debian Jessie veraltet zu sein, und die weitere Entwicklung wurde gestoppt. Wechseln Sie zu mod_remoteip, einem Standardmodul in Debian Jessie.

Kirrus
quelle
0

Nur ein Update zu dieser Frage. Das Format der Variablen, die mod_rpaf verwendet, hat sich geändert. Apache weigert sich, mit den oben aufgeführten Variablen zu beginnen (RPAFenable, RPAFsethostname, RPAFproxy_ips, RPAFheader).

Das neue Format lautet wie folgt:

LoadModule              rpaf_module modules/mod_rpaf.so
RPAF_Enable             On
RPAF_ProxyIPs           127.0.0.1 10.0.0.0/24
RPAF_SetHostName        On
RPAF_SetHTTPS           On
RPAF_SetPort            On
RPAF_ForbidIfNotProxy   Off
Artem Russakovskii
quelle