====== Apache: Proxy ======
===== Anwendung: mehrere selbstständige Web-Anwendungen auf selber IP und Port =====
Bsp.: auf einem Server soll sowohl ein "normaler" Apache Webserver als auch das [[/kerio/start|Kerio]]-Webfrontend auf Port 80 bzw. 443 laufen. Da das Kerio-Webfrontend als eigenständige Applikation läuft und nicht als Apache-Anwendung, reicht ein normaler namensbasierter virtueller Hosts ((http://httpd.apache.org/docs/2.2/vhosts/name-based.html)) nicht aus.
Lösungsansatz:
* namensbasierter virtueller Hosts, z.B:
* www.example.com löst auf IP auf
* kerio.example.com löst auf gleiche IP auf
* Kerio-Webfrontend läuft in Wirklichkeit auf Port 81
* Apache nimmt alle Anfragen auf Port 80 (und 443) an
* Die Anfragen an den Namen ''kerio.example.com'' werden per Apache-Proxy ((http://httpd.apache.org/docs/2.2/de/mod/mod_proxy.html#proxypassreverse)) an Port 81 weitergeleitet
Die magischen Zeilen in der Apache-Konfiguration sind:
ProxyPass / http://kerio.example.com:81/
ProxyPassReverse / http://kerio.example.com:81/
==== Beispiel: SSL-Weiterleitung an internen Service ====
Redmine ist auf http://vpn.strukturpunkt.de:8080/redmine/ installiert, soll aber von aussen mit SSL als https://strukturpunkt.de/redmine/ aufgerufen werden können.
NameVirtualHost strukturpunkt.de:80
...
RewriteEngine On
RewriteRule ^/redmine$ https://strukturpunkt.de:443/redmine/ [R]
RewriteRule ^/redmine/(.*)$ https://strukturpunkt.de:443/redmine/$1 [R]
NameVirtualHost strukturpunkt.de:443
DocumentRoot /var/www/StrukturPunkt.de
...
RewriteEngine On
RewriteRule ^/redmine$ https://strukturpunkt.de:443/redmine/ [R]
# braucht: a2dismod proxy_balancer und a2dismod proxy
ProxyPassMatch ^/redmine/(.*)$ http://vpn.strukturpunkt.de:8080/redmine/$1
ProxyPreserveHost On
==== Links ====
* http://www.andre-aulich.de/perm/mit-apache-als-reverse-proxy-website-kerio-webmail-und-rumpus-server-auf-einer-maschine-betreiben
* http://httpd.apache.org/docs/2.2/vhosts/name-based.html
* http://httpd.apache.org/docs/2.2/de/mod/mod_proxy.html#proxypassreverse