Virtual Hosting
Virtual Hosting ist der gleichzeitige Betrieb mehrerer Serverumgebungen auf einer gemeinsamen Hardware (Server bzw. Host). Jede dieser Umgebungen wird als ein Virtual Server bezeichnet und kann individuell konfiguriert für das Hosting jeweils mehrerer Domains oder IP-Adressen genutzt werden. Hierbei können parallel auch ganz verschiedene Serverumgebungen installiert sein, über die dann neben den üblichen Internetdiensten z. B. auch API Schnittstellen erreichbar sind.
Die hauptsächliche Verwendung von Virtual Hosting findet man bei Hosting-Dienstanbietern, die Kunden einen virtuellen Server zur Miete überlassen. Hier hat der Kunde dann anders als bei einem Domain-Hosting meist vollen Zugriff auf die tieferen Funktionen der Serverumgebung wie Cronjobs oder Datenbanken. Außerdem gibt es hier einen fest zugeschriebenen Kapazitätsanteil an der Zugriffsbandbreite des realen Servers, was dem Kunden eine höhere Betriebsstabilität bietet.
Es existieren zwei grundlegende Varianten zur Virtualisierung internetbasierter Dienste. Sie unterscheiden sich in dem Verfahren, das der Server bei einer Anfrage anwendet, um festzustellen, welcher der von ihm erbrachten Dienste angesprochen wurde.
IP-basiertes Virtual Hosting
Ein Host kann mehrere Netzwerkschnittstellen besitzen. Auf jede Netzwerkschnittstelle eines Hosts können mehrere IP-Adressen (Interface-Alias) konfiguriert werden. Die auf dem Host laufenden Server oder virtuellen Server können sich an eine oder mehrere dieser IP-Adressen binden. Das heißt, dass auf diesem Host verschiedene Server unter verschiedenen IP-Adressen ansprechbar sind. Aus Sicht des Clients sind die Server unabhängig voneinander. Dieses Verfahren ist robuster als das unten besprochene Namensbasierte Virtual Hosting.
Namensbasiertes Virtual Hosting
Viele Server bieten die Möglichkeit, ihre Dienste gleichzeitig für verschiedene Domains anzubieten, unabhängig davon, ob der Server an eine oder mehrere IP-Adressen gebunden ist. Die Unterscheidung, für welche Domain der Dienst angefragt wurde, wird auf der Anwendungsebene getroffen. So kann z. B. ein Mailserver am SMTP-Handshake die gewünschte Domain des Empfängers erkennen. Beim HTTP wird die Unterscheidung anhand des HTTP-Headerfeldes Host
vorgenommen.
Dieses Verfahren wird als Namensbasiertes Virtual Hosting oder auch als Virtuelle Domain bezeichnet. Letztere Bezeichnung ist irreführend, da nicht die Domain virtualisiert wird, sondern die unter deren Namen laufenden Dienste.
Reines Namensbasiertes Virtual Hosting wird ausschließlich bei Virtuellen Servern eingesetzt, da mehrere nichtvirtuelle Server nicht auf einer gemeinsamen IP-Adresse Verbindungen entgegennehmen können und somit eine Unterscheidung nach Namen keinen Vorteil bringt.
Dieses Verfahren ist weniger robust, als das IP-basierte Virtual Hosting. Beim HTTP-Protokoll beispielsweise wird clientseitig das Senden eines "Host"-Headers vorausgesetzt, welcher jedoch erst ab HTTP/1.1 verpflichtend ist und was sich der Einflussnahme des Serverbetreibers in der Regel entzieht. Bei HTTPS-Verbindungen ist zudem für eine passende Zuordnung der Zertifikate zu den Domains die Unterstützung von Server Name Indication auf der Server- und der Clientseite nötig.
Vorteil des namensbasierten Virtual Hosting ist der geringere serverseitige Pflegeaufwand sowie der geringere Verbrauch von IP-Adressen, was insbesondere bei großen Servern, die Dienste für mehrere hundert oder gar tausende von Domains beherbergen, ein wichtiges Argument ist.