Mit der Option GeoIPScanProxyHeaders On will der Apache nicht starten, weil die Direktive unbekannt sei. Ohne die Direktive ist das Ergebnis falsch, es wird immer die selbe, falsche Location ausgegeben.
Das PHP-Modul liefert eine richtige Angabe.
Mein System: Ubuntu Server 10.4 LTS, apache2 mit nginx als reverse-proxy. Er löst scheinbar immer die IP des Proxys auf. Deshalb brauch ich eigentlich die o.g. Direktive.
Hat jemand eine Idee? Hat jemand eine Ähnliche Konfiguration im Einsatz?
Die Apache-Lösung ist mir recht wichtig, da sie schneller ist und recht simple Weiterverwendung für Location-based-Kram auf der eigentlichen Webseite erlaubt.
Wenn das Apache-GeoIP-Modul die ProxyHeader auswerten würde, könnte ich sehen, ob nginx sie korrekt übergibt.
Nur will der Apache mit der Option GeoIPScanProxyHeaders On nicht starten.
Meine Frage war auch ob die Client IP beim Apache überhaupt ankommt. Unabhängig von Piwik, das spielt dabei keine Rolle. Da müssen ja auch 1-2 Optionen bei Nginx und Apache aktiviert sein.
Die PHP-GeoIP-Implementierung ermittelt den korrekten Standort - und die läuft auf dem Apache - also sollte er die Client-IP bekommen. Allerdings weiß ich nicht, welche Headerdaten die PHP-GeoIP-Implementierung dazu auswertet. Ich vermute mal, dass sie X-Forwarded-for auswertet.
Und genau das selbe wollte ich dem Apache-Mod GeoIP beibringen - wozu ich die o.g. Direktive in die mods-availabele/geoip.conf eintragen müsste.
Inzwischen habe ich gelesen, dass es zwei Versionen von mod_geoip gibt, 1 und 2, wobei V2 für den Apache2 ist. Nun steht in der Beschreibung des deb-Paketes im System nicht explizit, welche Version das ist. Nur, dass es für den Apache 2 sei. Version 1 soll die Direktive noch nicht kennen.