====== 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