Benutzerspezifische Werkzeuge
Sie sind hier: Startseite Support FAQs Virtual Hosting REMOTE_ADDR gibt die IP des durchschleifenden Apache Servers zurück und nicht die IP des Clients (oder dessen Proxy).
Eine Ebene höher

Frage

REMOTE_ADDR gibt die IP des durchschleifenden Apache Servers zurück und nicht die IP des Clients (oder dessen Proxy).

Antwort

Wer ein VirtualHostMonster(VHM) in Verbindung mit Apaches rewrite oder proxy Regeln verwendet, wird bei einem Aufruf von <dtml-var REQUEST> schnell merken, dass REMOTE_ADDR die IP des durchschleifenden Apache Servers zurückgibt und nicht die IP des Clients (oder dessen Proxy). Man kommt noch mit Hilfe von <dtml-var HTTP_X_FORWARDED_FOR> an die wahre IP des Clients, aber nicht alle Zope Produkte fragen auch diese Umgebungsvariable ab.

Zwar gibt es einen Apache Patch, der die IP mit im HTTP-Header durchreicht, aber das funktioniert nur mit HTTP/1.1.

Lösung 1: Geschickter ist es, direkt sein VHM mit Dieter Maurers VirtualHostMonster - RemoteAddr patch zu patchen. Mit diesem Patch ist das VHM in der Lage, die remote Adresse von der URL abzugreifen. Wenn die URL nach VirtualHostBase/protocol/host um ein VirtualHostRemoteAddr/remote_addr ergänzt wird, dann setzt das VHM Zopes REMOTE_ADDR auf remote_addr um. Dieses Feature kann zusammen mit Apaches rewrite Regeln folgendermaßen verwendet werden:

RewriteRule pattern http://localhost:8080/\
VirtualHostBase/proto/host/VirtualHostRemoteAddr/\
%{REMOTE_ADDR}/ something [P]

Lösung 2:
Einsatz des von Pound mitgelieferten z2.py Patches für Zope. Siehe hierzur FAQ Pound und Apache und den Abschnitt Zope unter http://www.apsis.ch/pound/

Anregungen zu dieser FAQ bitte an mschopen at dzug org


Letzte Änderung: 30.04.2006 • Autor: ajung