Ich habe schon viele Beiträge zu diesem Thema gelesen und mehrere Lösungen ausprobiert, aber keine funktionierende Lösung gefunden.REMOTE_ADDR IP vom Benutzer statt Nginx Reverse Proxy-Server
Ich habe einen Nginx Reverse Proxy vor meinem Apache Server eingerichtet. Wenn meine php Anwendung die REMOTE_ADDR Funktion benutzt, erhält sie die IP des Nginx Servers anstatt vom Benutzer.
Ich benutze Apache 2.4.10, so module_remoteip.c sollte installiert werden. Aber es ist nicht geladen.
Daher habe ich rpaf_module installiert. Es sieht so aus, als wäre dieses Modul korrekt installiert, wobei phpinfo() mod_rpaf-2 mit den geladenen Modulen angezeigt wird. Die I modifiziert, um die /etc/apache2/mods-available/rpaf.conf Datei mit folgendem Inhalt:
<IfModule rpaf_module>
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 172.19.0.5 # ip of Nginx server
RPAFheader X-Forwarded-For
</IfModule>
Meine Nginx Konfiguration sieht wie folgt aus:
location/{
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass 172.19.0.4;
}
Hilfe ist willkommen?
Das ist richtig, nur will ich nicht modifizieren mein Symfony2-Quellcode und halte diesen Code-Standard. – Tom
@Tom Ich aktualisierte meine Antwort. – thepieterdc
Nachdem ich zu Ihrem Beispiel gewechselt und Nginx & Apache zurückgesetzt habe, bekomme ich immer noch die Nginx IP-Adresse. – Tom