Inhaltsverzeichnis

Apache: Virtuelle Hosts und Direktiven

← Zurück zum Artikel Apache Webserver

Um verschiedene Webseiten auf einem Server sauber voneinander zu trennen, hat Apache das Konzept der virtuellen Hosts. Je nach angefragtem Domainnamen oder IP-Adresse wird dann unterschiedliches von Apache auf die Anfrage ausgeliefert. Details zu den verschiedenen Arten können in der Apache-Dokumentation1) abgerufen werden.

Werden VHosts verwendet, ist die Standardkonfiguration nicht mehr aktiv und muss auch in einen entsprechenden VHost ausgelagert werden. Kollidieren zwei VHosts mit ihrer Konfiguration wird beim Start des Apache eine Fehlermeldung ausgegeben.

Unter Ubuntu liegen die Apache-Konfigurationsdateien unter /etc/apache2/. Im Verzeichnis sites-available/ befinden sich alle verfügbarten VHost-Konfigurationen und im Verzeichnis sites-enabled/ ggf. ein Softlink zu der Konfiguration.

Aktivieren einer VHost-Konfiguration

# a2ensite [Domainname][.ssl]

Deaktivieren einer VHost-Konfiguration

# a2dissite [Domainname][.ssl]

Beispiel-Konfiguraionsdatei für einen VHost (ohne SSL)

<VirtualHost *:80>
# Minimal-Daten eines VHosts
ServerName wiba10.de
DocumentRoot "/srv/www/vhosts/wiba10.de/httpdocs"
ServerAdmin webmaster@wiba10.de

# Auf welche Domains "hört" dieser VHost auch noch?
ServerAlias www2.wiba10.de www.wiba10.de

# Logdateien für einen VHost von anderen Logs des Apache trennen
ErrorLog /srv/www/vhosts/wiba10.de/logs/error.log
LogLevel warn
CustomLog /srv/www/vhosts/wiba10.de/logs/access.log "combined"

# Berechtigungen für den Dateizugriff setzen
 <Directory "/srv/www/vhosts/wiba10.de/httpdocs">
  allow from all
  #Die folgende Zeile bewirkt, dass der Client den Browserinhalt als Liste darstellen darf. Mit "Options -Indexes" kann das unterbunden werden.
  Options +Indexes
 </Directory>
</ VirtualHost >

Logging

Sollen die Log-Dateien nicht in das standard Verzeichnis /var/log/apache2 geschrieben werden, sondern in ein anderes, muss man bei der Vergabe der Zugriffsrechte aufpassen. Existieren die log Dateien nicht und werden von Apache angelegt werden die Zugriffsrechte für den Nutzer root und die Gruppe adm vergeben. Man muss also die Nutzerrechte manuell auf den entsprechenden User/Gruppe ändern, oder die Dateien händisch erstellen und mit entsprechenden Rechten ausstatten. Wichtig ist, dass die Gruppe von apache (www-data) schreibrechte auf die Datei hat

Permanente Weiterleitungen

Soll ein Host permanent auf einen anderen weitergeleitet werden, so lässt sich das mittels „redirect“ lösen. Dies ist beispielsweise hilfreich, wenn man einen :80 Host dauerhaft auf einen :443 SSL-Host weiterleiten will.

<VirtualHost>
#Name des Hosts
Servername webmail.wiba10.de
# Dauerhafte Weiterleitung einer ganzen Domain auf eine andere Seite
RedirectMatch 301 (.*) http://www.newDomain.de
# Dauerhafte Weiterleitung aller Anfragen für den Host ( / ) (obere Variante wird empfohlen)
Redirect permanent / https://webmail.wiba10.de
</ VirtualHost>