Nginx Reverse Proxy und PHP $_SERVER["remote_addr"] bzw Order deny,allow und allow from

  • Hallo.

    Nachdem ich endlich einen nginx revers proxy aufgesetzt hatte um die Dienste im Netz endlich auf verschiedene Server zu verteilen ist mir aufgefallen dass bei den o.g. Punkten als "Source IP" nun die IP vom Proxy stand und nicht mehr die des Hosts aus dem Internet.


    Das war extrem blöd da ich erstens innerhalb von PHP Scripten die Umgebungsvariable $_SERVER["REMOTE_ADDR"] genutzt habe und auch in den Apache Config mittels der
    Order Deny,Allow teilweise nur bestimmte Source IP, z.B. nur aus dem lokalen Netz oder einem Host im Internet, zugelassen hatte.

    Auf einmal war z.B. phpmyadmin für alle sichtbar statt ein Forbidden zu bekommen.

    Wenn also jemand sucht und keine Lösung findet, hier ist sie :

    Im nginx ist ganz gut beschrieben wie man die IP als X-FORWARD_FOR weitergibt.
    Die Config im nginx für den host sieht z.B. so aus :

    Code
    server {
        server_name meinedomain.dns.test;
        location / {
            proxy_set_header REMOTE_ADDR $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass https://192.168.178.20;
    }

    Klappt auch wunderbar, nur der Apache dahinter bekommt die Source IP aus dem Netz nicht mehr mit sondern sieht stattdessen die IP von nginx.
    Nach stundenlangen Suchen im Netz hatte ich die Lösung :

    1. Auf dem Apache a2enmod remoteip aktivieren.

    2. in der entsprechenden Config des VHOST in der <VirtualHost> RemoteIPHeader X-Forwarded-For einfügen.

    3. Apachen neu starten.

    Und alles geht wieder wie gewohnt.

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

  • Nginx Reverse Proxy und PHP $_SERVER["remote_addr"] bzw Order deny,allow und allow from? Schau mal ob du hier fündig wirst!

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!