Weiterleitung an eine andere lokale Domain (Apache)
Allgemein
Manchmal ist es erforderlich, Http(s)-Anfragen von außen an einen Server, der nur lokal erreichbar ist, weiter zu leiten.
In dem her beschriebenen Beispiel, ist die Webseite test.<domain> sowohl lokal, als auch von außen, unter dem selben DNS-Namen erreichbar.
Im folgenden Beispiel habe ich das durch eine Subdomain lokal.<domain> gelöst. Der von außen erreichbare Server nimmt dazu die Anfragen für test.<domain> entgegen und leitet sie an test.lokal.<domain> weiter.
Für das Erstellen einer Subdomain siehe auch Subdomain in Bind.
Weiterleitender Server
Der DNS-Name test.<domain> muss auf den weiterleitenden Server aufgelöst werden und test.lokal.<domain> auf den lokalen Server. In dem folgenden Beispiel ist die weitergeleitete Verbindung zum lokalen Server auch verschlüsselt.
Zuerst müssen die erforderlichen Module aktiviert werden:
sudo a2enmod proxy sudo a2enmod proxy_html sudo a2enmod proxy_http
Danach eine Konfiguration nach folgenden Muster anlegen:
<VirtualHost *:443>
ServerName test.<domain>
SSLProxyEngine On
ProxyPass / https://test.local.<domain>/
ProxyPassReverse / https://test.local.<domain>/
SSLProxyCheckPeerName off
SSLProxyCheckPeerCN off
SSLEngine on
SSLCertificateFile /etc/ssl/certs/test.crt
SSLCertificateKeyFile /etc/ssl/private/apache.key
</VirtualHost>
Da das SSL-Zertifikat am Zielserver eigentlich für test.<domain> ausgestellt wurde, muss noch die Validierung des Namen deaktiviert werden. Dazu dienen folgende Zeilen in obigen Beispiel:
SSLProxyCheckPeerName off SSLProxyCheckPeerCN off
Zielserver
Der Zielserver muss in der .conf den Namen test.lokal.<domain> als Aliasnamen angegeben haben.
<VirtualHost *:443>
ServerName test.<domain>
ServerAlias test.local.<domain>
...
</VirtualHost>
Zurück zu Apache HTTP