Apache IP und name -basierte virtuelle Hosts erläutert
- 1782
- 545
- Madleen Vater
Mit der Verwendung virtueller Hosts können wir eine machen httpd
Server verwalten mehrere Websites. Wir können sowohl IP- als auch Namensbasis virtuelle Hosts verwenden. Was sind die Unterschiede zwischen ihnen??
Wie Apache entscheidet, was mit den virtuellen Hosts sein sollte
Wird verwendet, um auf eine Kundenanfrage zu antworten? Wir werden diese Fragen dabei beantworten
Artikel, weiterlesen!
In diesem Tutorial lernen Sie:
- Was sind die Unterschiede zwischen IP- und Namensbasis virtueller Hosts?
- Was ist der Hören Richtlinie und wie es verwendet wird
- Wie Apache entscheidet, welcher virtuelle Host verwendet werden soll, um auf eine Anfrage zu reagieren
Softwareanforderungen und Konventionen verwendet
Kategorie | Anforderungen, Konventionen oder Softwareversion verwendet |
---|---|
System | Verteilung unabhängig |
Software | Keine spezifische Software benötigt |
Andere | Vertrautheit mit dem Apache -Webserver und den HTTP -Grundkonzepten |
Konventionen | # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl$ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können |
Die Anweisung "Hören"
Das erste, was man berücksichtigen muss, ist das Hören
Richtlinie. Diese Richtlinie ist obligatorisch und ist erforderlich, um das zu sagen httpd
Server zu was IP-Port
Kombination sollte es auf Anfragen hören. Standardmäßig ist der Server normalerweise so konfiguriert, dass sie jedes anhören IP
am Hafen 80
.
In /etc/httpd/conf/httpd.Conf
Welches ist der Haupt httpd
Konfigurationsdatei auf Fedora/Rhel/CentOS -Systemen unter der Linie 45
, Zum Beispiel können wir lesen:
Hören Sie 80
Wie Sie sehen können, wird nur der Port mit dem angegeben Hören
Richtlinie. Infolgedessen hört der Server diesen Port auf allen Maschinen -IP -Adressen an. Wenn eine Adresse angegeben ist, hört der Server stattdessen nur auf die zur Verfügung gestellten IP: Port
Kombination.
Der Hören
Die Richtlinie kann mehrmals wiederholt werden. Es ist daher sehr einfach, mehrere Kombinationen anzugeben.
VirtualHost Matching
Sobald der Server konfiguriert ist, um eine bestimmte Adresse oder einen bestimmten Port anzuhören. Bevor wir die in dieser Entscheidung verbundenen Schritte sehen, sehen wir kurz, wie ein virtueller Host definiert ist.
Die Richtlinie zum Erstellen und Konfigurieren des virtuellen Hosts ist Virtualhost
; Es verwendet die folgende Syntax:
…
Wie wir beobachten können, jeder Virtualhost
Richtlinie braucht an ADDR
; Es kann angegeben werden als:
- Eine IP -Adresse, entweder IPv4 oder IPv6 (IPv6 -Adressen müssen in quadratischen Klammern eingeschlossen sein);
- Ein voll qualifizierter Domain -Name;
- A
*
Wildcard (dies wird mit allen Adressen übereinstimmen)
Alle Parameter und Konfigurationen im Inneren der Tags sind für diesen speziellen virtuellen Host „lokal“. Hier ist ein Beispiel für eine virtuelle Hostkonfiguration:
Servername: www.BeispielOne.com documentroot "/var/www/exampleone"
Oder mit einer Wildcard:
Servername: www.BeispielOne.com documentroot "/var/www/exampleone"
Das erste, was der Server tut, ist, jeden virtuellen Host in Ordnung zu halten und zu überprüfen, ob ihre ADDR
entspricht der Anfrage. Es ist wichtig zu bemerken, dass definierte IP. Zu diesem Zeitpunkt können wir drei Fälle haben:
- Nur ein virtueller Host entspricht der Anfrage;
- Keine virtuellen Hosts stimmen mit der Anfrage überein
- Mehrere virtuelle Host entsprechen der Anfrage
Die erste Fallauflösung ist einfach: Wenn die Client -Anforderung nur mit einem bestimmten virtuellen Host übereinstimmt, ist der httpd
Der Server antwortet, indem er den Inhalt im Zusammenhang mit diesem virtuellen Host bedient. In diesem Fall sprechen wir darüber IP-basiert
Virtuelle Hosts.
Der zweite Fall ist auch leicht zu erläutern: Wenn keine virtuelle Hostkonfiguration die Client -Anforderung erfüllt, wird die Standard -Serverkonfiguration verwendet, um auf die Anforderung zu reagieren. Für die Standardkonfiguration beabsichtigen wir alles, was außerhalb von außerhalb von festgelegt ist .
Im dritten Fall stimmen mehrere virtuelle Hosts mit der Client -Anfrage überein. In diesem Fall muss der Server je nach einem anderen Faktor als dem diskriminieren IP: Port
Kombination: Das Schema und das Hostname, den der virtuelle Host verwendet, um sich zu identifizieren, um sich selbst zu identifizieren.
Namensbasierte virtuelle Hosts
Der Server untersucht jeden übereinstimmenden virtuellen Host in der Reihenfolge der Definition und wählt ab, welche verwendet werden soll, abhängig vom angeforderten Hostname
. Dies werden als "Namensbasierte" virtuelle Hosts bezeichnet. Der erste virtuelle Host, der mit der Anfrage übereinstimmt, wird verwendet. Wenn es keine Übereinstimmungen gibt, verwendet der Server die Erste definiert Virtualhost
als Fallback.
Der Hauptvorteil bei der Verwendung von namenbasierten virtuellen Hosts besteht darin, dass wir mehrere Websites unter derselben IP-Adresse ausführen können. Lassen Sie uns ein Beispiel für einen Namensbasis VirtualHost sehen:
Servername www.Serverone.com documentroot/var/www/serverone
Seit *: 80
wird als Adresse verwendet, der virtuelle Host stimmt mit jeder Anfrage an Port überein 80
. Was den Unterschied in diesem Fall ausmacht, ist die Servername
Richtlinie. Wenn diese Anweisung weggelassen wird, versucht der Server, einen voll qualifizierten Domänennamen (FQDN) zu erhalten, der auf dem Betriebssystem -Hostnamen basiert.
Der Server prüft, ob der in der Anforderung angegebene Hostname dem über die konfigurierten übereinstimmt Servername
Richtlinie in diesem Fall www.Serverone.com
. Wenn dies der Fall ist, ist der mit dem angegebene Inhalt Dokument Root
Richtlinie Es wird dem Kunden zugestellt.
In einer virtuellen Host -Konfiguration ist es auch möglich, einen oder mehrere Aliase zu definieren, um mehrere Hostnamen zu entsprechen. Dies wird durch die Verwendung der verwendet Serveralias
Richtlinie:
Servername www.Serverone.com serveralias *.Serverone.com documentroot/var/www/serverone
In der obigen Konfiguration haben wir a hinzugefügt Serveralias
Anweisung mit einer Wildcard. Die Konfiguration stimmt jetzt auch mit jeder Subdomain von überein Serverone.com
.
IP-basierte virtuelle Hosts
IP-basierte virtuelle Hosts, wie wir bereits gesehen haben, sind im Grunde das, was die httpd
Server verwendet standardmäßig. Bei der Verwendung basiert die Möglichkeit, mehrere Websites zu bedienen IP: Port
Kombination.
Es geht selbst davon aus, dass ein Computer über mehrere Netzwerkadressen verfügen muss, um diese Art von virtuellen Hosts zu verwenden. Dies bedeutet nicht, dass mehrere physische Netzwerkschnittstellen erforderlich sind, da derselben Schnittstelle mehrere Adressen zugewiesen werden können (dies heißt IP -Aliasing
) und virtuelle Schnittstellen können auch erstellt werden (möchten wissen, wie Sie eine virtuelle Netzwerkschnittstelle unter Linux erstellen können?
Schauen Sie sich unseren Artikel über das Erstellen virtueller Netzwerkschnittstellen unter Linux an. Hier sind zwei Beispiele für iP-basierte virtuelle Hosts:
Hören Sie 8080 Servername: www.BeispielOne.com documentroot "/var/www/exampleone" Servername www.Beispielewo.com documentroot "/var/www/evicyPletwo"
Oben können wir sehen, dass auch wenn die beiden virtuellen Hosts dieselbe IP -Adresse haben, im zweiten Beispiel ein anderer Port angegeben ist: 8080
. Damit der Server diesen Port anhören kann, verwenden wir die Hören Sie 8080
Richtlinie.
Abschluss
In diesem Tutorial haben wir gesehen, wie apache virtuelle Hosts funktionieren. Wir haben den Unterschied zwischen IP- und Namensbasierten virtuellen Hosts gelernt und wie der Server feststellt, welche Konfiguration verwendet werden soll, um auf eine Clientanforderung zu reagieren. Bitte schauen Sie sich den Apache -Artikel an, wenn Sie mehr darüber erfahren möchten, wie Sie einen virtuellen Apache -Host konfigurieren können.
Verwandte Linux -Tutorials:
- So migrieren Sie Apache in Nginx, indem Sie virtuelleHosts in…
- Eine Einführung in Linux -Automatisierung, Tools und Techniken
- Mastering -Bash -Skriptschleifen beherrschen
- Dinge zu installieren auf Ubuntu 20.04
- So richten Sie einen OpenVPN -Server auf Ubuntu 20 ein.04
- GNU/Linux Allgemeiner Fehlerbehebungsleitfaden für Anfänger
- So erstellen Sie einen Docker -basierten Lampenstapel mit Docker auf…
- Erstellen Sie Umleitungs- und Umschreiben von Regeln in .Htaccess auf Apache…
- So verwalten dynamische virtuelle Hosts mit Apache und der…
- Wie man mit der Woocommerce -REST -API mit Python arbeitet