Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
mod_proxy_html ist ein Ausgabefilter, der HTML-Links so umschreiben kann, dass mehrere Webserver nahtlos miteinander kombiniert werden können.
So kann z.B. ein 2. Webserver (welchen z.B. Dienste wie ejabberd bereitstellen) unter http://server/ejabberd
erreicht werden, obwohl der 2. Webserver auf der IP 127.0.0.1 und dem Port 5281 läuft. Die Hauptaufgabe (und damit der Unterschied zum "normalen" mod_proxy) besteht darin, dass das übertragene HTML so modifiziert wird, dass alle Links mit der veränderten Situation klar kommen.
Hier eine grafische Darstellung des Ganzen:
Wie im Beispiel zu sehen wird man über
http://server/ejabberd
auf den eingebauten Webserver vom ejabberd umgeleitet. Alle Seiten, die der ejabberd sendet, werden durch mod_proxy_html so verändert, dass die Links mit http://server/ejabberd/
beginnen. So ist eine normale Funktion der ejabberd-Administrationsseiten gewährleistet. Natürlich funktioniert dieses Verfahren auch mit vielen anderen Diensten.
mod-proxy-html ist ein Apache-Modul, das nicht von Haus aus installiert wird. Man kann es jedoch über das Paket
libapache2-mod-proxy-html (universe' )
mit apturl
Paketliste zum Kopieren:
sudo apt-get install libapache2-mod-proxy-html
sudo aptitude install libapache2-mod-proxy-html
sehr einfach nachinstallieren.
Zum Verwenden des Moduls muss die VirtualHost-Konfiguration entsprechend angepasst werden. Hier ein Ausschnitt einer möglichen Konfiguration:
1 2 3 4 5 6 7 8 9 10 11 | <VirtualHost *> ... ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass /ejabberd/ http://127.0.0.1:5281/ ProxyPassReverse /ejabberd/ http://127.0.0.1:5281/ ... </VirtualHost> |
Nach dieser Änderung muss der Apache Webserver neu gestartet werden (reload)[4].
Wenn der ProxyRequests Off vergessen wird, arbeitet das unter mod_proxy_html liegende mod_proxy als Open Proxy, was ein Sicherheitsproblem darstellt!