Apache IP und name -basierte virtuelle Hosts erläutert

Apache IP und name -basierte virtuelle Hosts erläutert

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
Apache IP und name -basierte virtuelle Hosts erläutert

Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
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:

  1. Nur ein virtueller Host entspricht der Anfrage;
  2. Keine virtuellen Hosts stimmen mit der Anfrage überein
  3. 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