Der Nginx Proxy Manager macht wenn es um Reverse Proxy geht eine super Arbeit. Allerdings verschleiert er für die dahinter liegenden System auch sehr gerne die IP-Adressen und aufgerufenen URLs. Wenn man Statistiken haben möchte auf der Webseite, braucht man diese Daten aber. Die Lösung ist relativ einfach, wir leiten diese Informationen einfach weiter und das im HTTP Header. Im Hintergrund ließt der Apache Webserver diese Daten wieder aus und kann endlich seinen Job machen.

NGINX Proxy Manager Konfiguration

Im NGINX Proxy Manager fügen wir in den Domain Einstellungen im Reiter Advanced einfach folgendes hinzu.

proxy_read_timeout 300;
proxy_pass_header  X-Transmission-Session-Id;
proxy_set_header   X-Forwarded-Host   $host;
proxy_set_header   X-Forwarded-Server $host;
proxy_set_header   X-Forwarded-For    $proxy_add_x_forwarded_for;   

Damit werden die Informationen im Header gespeichert und dann weiter an den Zielhost geleitet. In unserem Falle ist das ein Apache2 Webserver. Diesem Webserver müssen wir jetzt allerdings erstmal beibringen diese Daten auch auszulesen und zu verwerten.

Apache2 Webserver Konfiguration X-Forward-For

Der Apache2 kann erstmal damit nichts anfangen und muss dieses Weiterleiten erstmal lernen. Dafür brauchen wir ein zusätzliches Apache Modul. Das Modul mod_remoteip müssen wir zunächst aktivieren.

sudo a2enmod remoteip

Jetzt fügen wir noch jedem für virtuellen Server welcher das können soll diese Header Informationen hinzu. In euren ../apache2/site-available Ordnern verstecken sich eure Konfigurationen. Da es zig verschiedenen Lösungen gibt, verweise ich euch auf die Grundinformationen. Folgendes muss die zwischen <virtualhost> HIER HIN </virtualhost>Parameter. Bei RemoteIPInternalProxy müsst Ihr die IP-Adresse vom NGINX Proxy Manager eintragen.

<virtualhost>
   ###
   ###
  RemoteIPHeader X-Forwarded-For
  RemoteIPInternalProxy IP-VON-EUREM-NGINX-MANAGER
  SetEnvIf X-Forwarded-Proto "^https$" HTTPS=on
   ###
   ###
</virtualhost>
sudo service apache2 restart

Das wars auch schon, jetzt sollte euer Webserver wieder Daten wie IP Adressen und URLs im Hintergrund erhalten.

NPM Advanced
NPM Advanced