Weiterleitung an eine andere lokale Domain (Apache)

Aus Tutorials
Version vom 1. November 2026, 09:27 Uhr von Martin Kirner (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

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