25 Oktober

Mass-Virtual-Hosting

Wer schonmal mit den Virtual Hosts beim Apachen rumgespielt hat, weiß wie lästig es ab einer bestimmten Anzahl von Virtual Hosts wird, die httpd.conf für jeden neuen Eintrag abzuändern und den Webserver jedesmal neu zu starten.
Besonders lästig ist das wohl für Webhosting-Anbieter, die mit einer großen Anzahl gleichartiger virtueller Hosts hantieren müssen.
Bei einer hohen Anzahl von namensbasierten virtuellen Hosts leidet zudem die Performance, da bei jedem Aufruf immer die Liste Hostnamen durchgegangen werden muss.

Hier bietet sich der Einsatz des Apache-Modusl mod_vhost_alias an.
Die Hauptvorteile beim Einsatz von mod_vhost_alias sind:
  • Die Konfigurationsdatei ist kürzer und der Webserver startet schneller und benötigt weniger Hauptspeicher.
  • Zusätzliche virtuelle Hosts können durch einfaches erzeugen neuer Verzeichnisse im Dateisystem und Einträgen im DNS Server erstellt werden.
  • Der Apache Webserver muss nach dem Hinzufügen neuer virtueller Hosts nicht mehr neugestartet werden.
Einen Nachteil hat die Sache aber auch:
Man kann für die einzelnen virtuellen Hosts keine getrennten Logfiles anlegen.

Die Idee hinter diesem Modul besteht darin, den Hostnamen nicht in die Serverkonfiguration aufzunehmen, sondern auf das Dateisystem auszulagern.
In der Serverkonfiguration wird der Ort angegeben, an dem die einzelnen virtuellen Hosts liegen.
Beispielsweise im Verzeichnis /vhosts/
Innerhalb dieses Verzeichnisses werden dann einfach die jeweiligen Verzeichnisse für die virtuellen Hosts angelegt, z.B /vhosts/www.domain.tld/ und /vhosts/www.anderedomain.tld.
Diese Domains müssen dann nur noch im DNS Server eingetragen werden.

Windows Beispiel:
UseCanonicalName Off
VirtualDocumentRoot "F:/Apache/Apache2/vhosts/%0"
<Location /cgi-bin>
Options ExecCGI
SetHandler cgi-script
</Location>

Linux Beispiel:
UseCanonicalName Off
VirtualDocumentRoot /usr/local/apache/vhosts/%0
<Location /cgi-bin>
Options ExecCGI
SetHandler cgi-script
</Location>

<Location /cgi-bin> wird nur dann benötigt, wenn die virtuellen Hosts auch eigene CGI-Anwendungen ausführen dürfen.
Dafür muss dann innerhalb der virtuellen Host Verzeichnisse ein cgi-bin Verzeichnis bereitgestellt werden, bzw. vorhanden sein.

tags:

18:22:30 25.10.2004 Holger Struck - Kategorie: Tipps/Tricks

TrackBack

Trackback
There are currently no trackbacks for this item.
Use this TrackBack url to ping this item (right-click, copy link target). If your blog does not support Trackbacks you can manually add your trackback by using this form.

Kommentare

Frank Hirsch:

Kleiner Nachtrag:
hatte bei meinem "mass virtual host" auf suse linux 10.0 mit Apache 2.2.0 ein Problem mit den CGI's wenn der Hauptserver ebenfalls ein cgi-bin hatte. Nachdem ich in der Hauptkonfiguration die Konfiguration für das cgi-bin heraugenommen hatte, landeten alle Anfragen auch tatsächlich im Richtigen, für jeden vhost dynamisch definierten Verzeichnis.
14.09.2006 09:47:16

Kommentar schreiben

:

:
:




Kommentar wird nach Überprüfung freigeschaltet