Apache: VirtualHosts

von Thomas Lange

Für die VirtualHost-Konfiguration eines Apache-Webservers gibt es eine einheitliche Verzeichnisstruktur, an die man sich halten sollte. Einzelne VirtualHost-Konfigurationsdateien befinden sich grundsätzlich im Verzeichis /etc/apache2/sites-available/. Wenn ein VirtualHost aktiviert wird, wird einfach ein SymLink im Verzeichnis /etc/apache2/sites-enabled/ angelegt. Zum komfortablen Aktivieren und Deaktivieren von einzelnen VirtualHosts gibt es die Apache-Tools a2ensite und a2dissite, die jeweils als Parameter den Namen der VirtualHost-Konfigurationsdatei aus dem ersten Verzeichnis erwarten:

  • VirtualHost aktivieren: # a2ensite domainname.tld.conf
  • VirtualHost deaktivieren: # a2dissite domainname.tld.conf

Um eine neue VirtualHost-Konfiguration zu erstellen wird im Verzeichnis /etc/apache2/sites-available/ einfach eine neue Datei mit dem Dateinamen domainname.tld.conf erstellt. Diese enthält optimalerweise zwei <VirtualHost>-Sektionen: eine für normale Verbindungen auf Port 80 (HTTP) und einen für verschlüsselte Verbindungen auf Port 443 (HTTPS). Bei der VirtualHost-Konfiguration für HTTPS ist der einzige Unterschied, dass mit IfModule überprüft wird, ob das SSL-Modul aktiviert ist, und dass die Pfade zum X.509-Zertifikat, dem privaten Schüssel und gegebenenfalls dem Intermediate-Zertifikat mit angegeben sind.

Nachdem man den neuen VirtualHost erstellt und mit a2ensite aktiviert hat, muss man lediglich noch die Apache-Konfiguration mit # systemctl reload apache2 neu laden damit der VirtualHost einsatzbereit ist; ein Neustart ist nicht notwendig.