Ein Webserver hat üblicherweise mehrere Anwendungen. Damit diese Anwendungen nicht über Anhängsel in der URL angesprochen werde müssen, gibt es die Möglichkeit virtuelle Hosts zu nutzen. In diesem Artikel möchte ich euch zeigen, wie ihr virtuelle Hosts für den Apache anlegt und aktiviert.
Ansprechen von Apps am Beispiel ohne virtuelle Hosts:
http://192.168.178.123/app1
http://192.168.178.123/app2
http://192.168.178.123/app3
Beispiel mit virtuellen Hosts:
http://app1.webserver.loc
http://app2.webserver.loc
http://app3.webserver.loc
Um dies zu erreichen brauchen wir 2 Dinge: einen internen DNS-Server und die Konfiguration im Apache. Das Installieren und Konfigurieren eines DNS-Servers mit Pi-hole habe ich bereits in diesem Artikel vorgestellt.
Für die Konfiguration der VHosts navigieren wir in den Ordner sites-available.
cd /etc/apache2/sites-available
Wir legen eine neue .conf Datei an.
nano app1.conf
Fügt folgenden Inhalt in diese Datei ein:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName app1.webserver.loc
DocumentRoot /var/www/html/app1
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
ServerName gibt an, auf welchen DNS dieser Eintrag lauschen soll. Wird im Browser auf den Server per app1.webserver.loc verbunden erkennt der Apache diesen VHost und lenkt ihn in das richtige Verzeichnis um. Die Dateien der Webseiten liegen in diesem Beispielfall in /var/www/html/app1.
Zum Aktivieren dieser Konfiguration müsst ihr den Befehl a2ensite nutzen.
sudo a2ensite app1.conf
Zum Abschluss ein Reload des apache2 Server:
sudo systemctl reload apache2