Linux
2008-11-29: Einrichtung eines ReverseProxy auf Basis von apache2
Update 2011-02-09: SSL
Ich habe den Artikeln im letzten Abschnitt um eine Konfiguration mit SSL erweitert.Problem
Das gute alte Problem: Die Webseite soll von einem Server auf den anderen umziehen. Doch wie will man bewerkstelligen, dass der Umzug trotz IP-Wechsel, der mit DNS-bedingten Wartezeiten verbunden ist, für alle unterbrechungsfrei und möglichst ohne Inkonsistenzen (verschiedene Inhalte/Datenstände auf den beiden Servern) über die Bühne geht?Lösung
Die Lösung ist gar nicht so schwierig und heißt mod_proxy. Damit werden relativ einfach alle Seitenaufrufe, die auf dem alten Server aufschlagen, an den neuen Server weitergeleitet und dann beantwortet. Die entpsrechende Konfiguration des vHosts auf dem alten Server sieht wie folgt aus:
<VirtualHost *>
ServerName domain.tld
DocumentRoot /htdocs
ProxyRequests Off
ProxyPreserveHost On
<Location />
Allow from All
ProxyPass http://domain.tld/
ProxyPassReverse http://domain.tld/
</Location>
</VirtualHost>
Diese Konfiguration sorgt dafür, dass jeder Aufruf, der auf diesem vHost landet, transparent an den richtigen Server weitergegeben wird. Voraussetzungen:
ServerName domain.tld
DocumentRoot /htdocs
ProxyRequests Off
ProxyPreserveHost On
<Location />
Allow from All
ProxyPass http://domain.tld/
ProxyPassReverse http://domain.tld/
</Location>
</VirtualHost>
- der alte Server kennt bereits die neue IP für die Domain (Aktuelle DNS-Informationen oder Eintrag in /etc/hosts)
- mod_proxy ist in apache aktiviert
Verwendung von SSL
Soll die Verbindung zum Backend-Server über eine SSL-gesicherte Verbindung erfolgen, muss die SSLProxyEngine aktiviert werden:
<VirtualHost *>
ServerName domain.tld
DocumentRoot /htdocs
SSLProxyEngine On
ProxyRequests Off
ProxyPreserveHost On
<Location />
Allow from All
ProxyPass https://domain.tld/
ProxyPassReverse https://domain.tld/
</Location>
</VirtualHost>
ServerName domain.tld
DocumentRoot /htdocs
SSLProxyEngine On
ProxyRequests Off
ProxyPreserveHost On
<Location />
Allow from All
ProxyPass https://domain.tld/
ProxyPassReverse https://domain.tld/
</Location>
</VirtualHost>
Kommentare
Kommentieren| von Stephan Mund | 2012-01-04 16:59:41 |
|---|---|
| Ja, der Backend-Server benötigt (zumindest in der oben geschilderten Konfiguration) auch ein SSL-Zertifikat. Man kann jedoch auch einen reinen HTTP-Backend-Server verwenden. In diesem Fall einfach einfach in den Zeilen "ProxyPass" und "ProxyPassReverse" http://-URI angeben. Stephan |
|
| von Tad | 2011-06-18 17:39:58 |
| Hallo, braucht der backend-server ein SSL Zertifikat damit der Proxy darauf zugreifen kann? |
|
Zurück zu Technik | Linux
Hat Ihnen der Artikel weitergeholfen? Sie wollen sich in irgendeiner Art für die geleistete Hilfe erkenntlich zeigen? Schauen Sie doch einmal auf meiner Amazon-Wunschliste vorbei, ich freue mich immer über eine kleine Sachspende:
Zur Wunschliste






![Validate my RSS feed [Valid RSS]](/img/valid-rss.png)
