Statistiken auf Webserver hinter Proxy

kahless

New Member
Hallo...

Vorweg, da dies mein erster Beitrag hier ist: seit zwei Wochen richte ich eine Umgebung mit ISPconfig ein, und es gefaellt mir von Tag zu Tag besser. Danke an die Entwickler!

Zu meinem Problem: ich habe auf einem Server mit einer oeffentlichen IP das ISPconfig auf mehrere virtuelle Maschinen verteilt, jeweils mit privaten IPs (192.168.0.0/24). Unter anderem sind da zwei Webserver mit nginx. Auf dem Haupt-Server laeuft auch ein nginx als Reverse Proxy, der reicht die Anfragen an die nachgelagerten Server durch.

Das klappt soweit prima.

Allerdings wuerde ich in den Statistiken gerne etwas ueber meine Besucher erfahren. Und sowohl Webalizer als auch AWstats sehen natuerlich nur die IP des Reverse Proxy (192.168.0.1). So macht das keinen Spass.

Gibt es da eine Loesung?


Gruss,
Kahless.
 

Till

Administrator
Du könntest die Statistiken auf dem proxy server anhand von dessen logs erstellen, denn die logs müssen ja die richtigen IP's enthalten.
 

kahless

New Member
Hallo...

Kann ich das mit Bordmitteln machen? Also so dass das fuer Reseller / Clients transparent ist? Oder muesste ich mir da was skripten?

Ich habe gesehen dass ich auf dem Webserver (also dem ISPconfig-kontrollierten Webserver, hinter dem Proxy) mit der nginx-Direktive log_format das Format anpassen kann. Nginx unterstuetzt offenbar durch Anweisungen wie "proxy_set_header X-Real-IP $remote_addr" das Durchreichen der echten IP. Allerdings muesste ich dann ein eigenes log_format auf dem Webserver definieren. Das geht, allerdings darf mein log_format nicht den Namen 'combined' haben. ISPconfig legt die vhosts aber so an dass im Format 'combined' geloggt wird...


Ciao,
Kahless.
 

kahless

New Member
Geloest!

Hallo...

OK, das mit dem log_format war ein Holzweg. Hat erstens nicht geklappt, und zweitens haette ISPconfig die Einstellung jedes Mal ueberschrieben wenn die Site umkonfiguriert wird.

Aber es gibt eine Loesung: die folgenden Zeilen im http{}-Block des eigentlichen Webservers (also der hinter dem Reverse Proxy) machen genau was ich gesucht habe:

Code:
# log real source IP instead of the reverse proxy's
set_real_ip_from 192.168.0.0/16;
real_ip_header X-Forwarded-For;
Das erfordert dass in der Konfiguration des Proxys folgende Zeilen stehen:

Code:
proxy_set_header        X-Real-IP       $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
Aber die findet man in praktisch jeder Anleitung zu dem Thema.


Ciao,
Kahless.
 

Werbung

Top