0251 / 590 644 - 0
info@a-coding-project.de

Apache: Virtuelle Server

Mit dem Apache Server und einem entsprechend konfigurierten Domain Name Server ist es möglich auf einem Server mehrere Domains zu verwalten. Der Apache kann dabei die Domains sowohl IP basierend (IP-based Virtual Host) als auch Namens basierend (Name-based Virtual Host) verwalten.

IP-basiertes Virtual Host

Bei dem IP basierten virtuellen Host, wird jeder Domain, die zu hosten ist, eine eigene IP-Adresse zugeordnet. Dabei fragt der Client bei seinem zuständigen DNS-Server nach der IP-Adresse des Domainnamens und spricht dann den Webserver darüber an. Diese Variante ist bei der begrenzten Anzahl an IP-Adressen und der heutigen Anzahl der Domainnamen natürlich nicht zu empfehlen und somit wird hauptsächlich das Namen basierende Virtual Host Verfahren angewandt.

Name-basiertes Virtual Host

Bei Namen basierten Virtuellen Hosts wird jeder Domain die auf einem Server liegt die gleiche IP zugeordnet und der Webserver entscheidet anhand des HTTP-Host-Headers welche Domain der Client anfordert. Das hat den Vorteil, dass ein kleiner Internet Provider nicht unzählige IP Adressen anmieten oder kaufen muss.

Der VirtualHost-Container

In jedem VirtualHost-Container wird ein eigenständiger Server konfiguriert. Deshalb lassen sich fast alle grundlegenden Servereinstellungen die in der httpd.conf getätigt werden können auch auf die VirtualHost-Container anwenden. So lässt sich für mehrere Domains unterschiedlicher Funktionsumfang realisieren. Zum Beispiel für Domain A PHP Support und für Domain B nur ASP und für Domain C PHP und ASP mit zusätzlichem Verzeichnisschutz usw..

Virtual Host Beispiele

Im vorangegangenen Kapitel wurden bereits die grundlegenden Einstellungsmöglichkeiten für den Server vorgestellt und dort auch vermerkt ob diese in dem VirtualHost-Container funktionieren. Ein anderer Port kann natürlich auch gewählt werden, dieser muss aber bei der Anweisung des VirtualHost mit angegeben werden.

#IP Virtual Host
<VirtualHost 123.456.789.123>
  ServerName www.domain2.de
  ServerAdmin root@domain2.de
  DocumentRoot /usr/www/domain2/htdocs
  ErrorLog /usr/www/logs/err_domain2.log
</VirtualHost>

<VirtualHost 123.456.789.123:8080>
  # ... verschiedene Serveranweisungen ...
</VirtualHost>

#Name Virtual Host
NameVirtualHost 123.456.789.123
<VirtualHost www.domain1.org>
  ServerName www.domain1.org
  ServerAdmin admin@domain1.org
  DocumentRoot /usr/www/domain1/htdocs
  # ... weitere Einstellungen für den Server ...
</VirtualHost>

<VirtualHost www.domain2.org>
  ServerName www.domain2.com
  ServerAdmin verwaltung@domain2.com
  DocumentRoot /usr/www/domain2/htdocs
  # ... weitere Einstellungen für den Server ...
</VirtualHost>

Auf dem zuständigen Domain Server müssen dann die Einträge der Domainnamen www.domain1.org und www.domain2.com auf die IP Adresse 123.456.789.123 zeigen.