IPv6-Testbetrieb für heise online [2. Update]

Seite 2: Per Proxy

Inhaltsverzeichnis

Die Seiten von www.heise.de liefert nicht ein einziger Server aus, sondern ein Cluster vielen Maschinen. Die Verbindung zum Internet stellt ein Loadbalancer her, der die Anfragen der Surfer verteilt und die Antworten zurückliefert.

Diese ganze Infrastruktur auf IPv6 umzustellen, wird ein erheblicher finanzieller und Arbeits-Aufwand. Um schon vorher Erfahrungen zu sammeln, haben wir uns für den Probebetrieb für eine einfachere Lösung entschieden: www.six.heise.de ist ein Reverse-Proxy, der seinerseits per IPv4 über den Loadbalancer auf www.heise.de zugreift.

Als Proxy-Server kommt Apache mit dem Modulmod_proxy zum Einsatz.

Zunächst aktivieren wenige zusätzliche Zeilen in der VirtualHost-Definition auf www.six.heise.de den Proxy:

Mehr Infos

ServerName www.six.heise.de
ProxyPass / http://www.heise.de/
ProxyPassReverse / http://www.heise.de/

Über ServerName muss der Server wie üblich seinen Namen erfahren. ProxyPass legt fest, an welchen externen Server die Anfragen durchgereicht werden sollen. Die hier gezeigte Zeile bedeutet, dass relativ zum Root von www.six.heise.de alle URLs ungeändert bei www.heise.de abgefragt werden sollen.

mod_proxy kann den gesamten Inhalt eines Servers in einem Verzeichnis eines anderen einbinden. Dazu teilt man ihm in der ProxyPass-Direktive das Verezeichnis auf dem Proxy (zum Beispiel /mirror/example/) und den dort einzublendenden URL (zum Beispiel http://www.example.com/) mit:

Mehr Infos

ProxyPass /mirror/example/ http://www.example.com/

Bei www.six.heise.de liegt der Fall etwas einfacher, weil dort ja alle Seiten von www.heise.de unter denselben Pfaden erscheinen sollen. Daher genügt als Pfadangabe der einfache Schrägstrich.

Der Proxy reicht mit den HTML-Seiten auch die meisten HTTP-Header an den Client durch, die er vom Server bekommt. Doch in den Headern Location, Content-Location und URI steht eventuell www.heise.de statt www.six.heise.de. Die Korrektur leistet für die Header die ProxyPassReverse-Zeile: Sie ersetzt http://www.heise.de durch den eingestellten ServerName und den Pfad /.

Die Dokumentation zu mod_proxy empfiehlt, bei einem Reverse-Proxy zusätzlich ProxyRequests Off zu setzen. Damit wird verhindert, dass der Server wie ein üblicher Proxy funktioniert, der vom Client auch Anfragen für ganz andere Server annimmt und deren Seiten durchreicht. Doch diese Funktion ist ohnehin per Default ausgeschaltet.