Als erstes den Apache-Server installieren.
Es ist wichtig, dass das Modul libapache2-mod-proxy-html auf dem Apache mit installiert ist! Siehe Apache installieren.
Ich gehe hier von einem Setup mit Virtual Hosts aus, um verschiedene Rechnernamen auf interne Server umzubiegen, eine Weiterleitung nach Verzeichnisnamen in der URL kann in einer “Location” Direktive erfolgen, es muss nur der erste Parameter von “ProxyPass” usw. passend umgestellt werden. Mein Setup findet in einer VirtualHosts Sektion statt, und sieht folgendermaßen aus:
reverse Proxy auf Port 80
Hier leite ich den Host www.intelli.ch intern auf www.intelli.ch weiter. Das funktioniert, weil ich auf dem Server in der
/etc/hosts
Datei einen Eintrag
www.intelli.ch <IP Adresse>
definiert habe. So leiter er also den externen DNS www.intelli.ch auf die interne www.intelli.ch Adresse weiter. Auf diese Art und Weise kann ich, falls ich mal den internen Ziel-Server ändere, einfach in der hosts-Datei die neue IP angeben, ohne den Apache zu restarten. Es ist mir klar, dass dies nur bei kleinen Server-Installationen ein akzeptabler Weg ist.
NameVirtualHost 192.168.x.xx:80 ProxyRequests OFF HostnameLookups Off <Directory /> Options FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> <Proxy *> Order deny,allow Allow from all </Proxy> <VirtualHost 192.168.x.xx:80> ServerAdmin my@mail.ch ServerName www.mydomain.ch ServerAlias mydomain.ch # Regeln zum umleiten auf den internen Server ProxyPass / http://www.mydomain.ch/ ProxyPassReverse / http://www.mydomain.ch/ # WICHTIG! gzip-Kompression deaktivieren - ohne funktioniert das URL Rewriting nicht RequestHeader unset Accept-Encoding ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined ServerSignature On </VirtualHost>
reverse Proxy auf Port 443 (SSL)
# # Use name-based virtual hosting. # NameVirtualHost 192.168.x.xx:443 ProxyRequests OFF HostnameLookups Off <Directory /> Options FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> <Proxy *> Order deny,allow Allow from all </Proxy> <VirtualHost 192.168.x.xx:443> ServerAdmin ralph@intelli.ch ServerName www.mydomain.ch #aktiviert SSL Unterstuetzung SSLEngine On SSLCertificateFile /etc/apache2/ssl/apache.pem SSLProxyEngine On SSLProxyCACertificateFile /etc/apache2/ssl/apache.pem # Regeln zum umleiten auf den internen Server ProxyPass / https://www.mydomain.ch/ ProxyPassReverse / https://www.mydomain.ch/ # WICHTIG! gzip-Kompression deaktivieren - ohne funktioniert das URL Rewriting nicht RequestHeader unset Accept-Encoding ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined ServerSignature On </VirtualHost>