So verwalten dynamische virtuelle Hosts mit Apache und das Modul mod_vhost_alias

So verwalten dynamische virtuelle Hosts mit Apache und das Modul mod_vhost_alias

Der Apache -Webserver kann mehrere Websites aus derselben IP -Adresse unter Verwendung von virtuellen Hosts bedienen. Jeder virtuelle Host kann in der Haupt -Serverkonfigurationsdatei konfiguriert werden oder dank der Enthalten oder der Integrieren
Richtlinien in seiner eigenen engagierten. Wenn die Anzahl der virtuellen Hosts zunimmt, wird ihr Management problematisch. Wenn ihre Konfiguration ziemlich ähnlich ist, können wir sie dank der dynamisch verwalten mod_vhost_alias Modul. In diesem Tutorial werden wir sehen, wie es geht.

In diesem Tutorial lernen Sie:

  • Was ist ein virtueller Apache -Host
  • So überprüfen Sie, ob das Modul mod_vhost_alias aktiviert ist
  • So laden Sie das Modul mod_vhost_alias auf Debian und Red Hat -Familie von Verteilungen
  • So verwalten dynamische virtuelle Hosts mit dem Modul mod_vhost_alias

Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Verteilung unabhängig
Software Apache -Webserver
Andere Wurzelberechtigungen
Konventionen # - Erfordert, dass gegebene Linux -Commands mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mithilfe von verwendet werden können sudo Befehl
US

Eine schnelle Übersicht über virtuelle Hosts

Wie wir bereits in der Einführung erwähnt haben, kann der Apache -Webserver mehrere Websites mithilfe von virtuellen Hosts und die richtige DNS -Konfiguration bedienen. Die folgende ist eine minimale, aber typische virtuelle Host -Definition:

 Servername www.prüfen.LAN Serveralias -Test.lan documentroot/var/www/www.prüfen.Lan  


Diese Konfiguration verwaltet Benutzeranforderungen an die www.prüfen.Lan Adresse, die der Wert ist, den wir mit dem festgelegt haben Servername Richtlinie, aber auch zu prüfen.Lan, Welches ist das Serveralias. Mit dem Dokument Root Richtlinie Wir setzen das Basisverzeichnis, aus dem die Dateien, die dem virtuellen Host zugeordnet sind, bedient werden sollten, was in diesem Fall ist /var/www/www.prüfen.Lan.

Ein virtueller Host kann in der Haupt -Server -Konfigurationsdatei definiert werden (/etc/httpd/conf/httpd.Conf Auf der Red Hat -Familie der Verteilungen, /etc/apache2/apache2.Conf auf Debian Systems und seinen Derivaten) oder in einer eigenen Datei geschrieben und aus der Hauptkonfiguration enthalten sein kann. Wenn wir uns die Apache -Konfiguration auf den Hauptlinux -Verteilungen ansehen, können wir feststellen, dass virtuelle Hosts -Dateien über die enthalten sind Integrieren Richtlinie aus einem bestimmten Verzeichnis.

Auf Fedora und verwandten Verteilungen haben wir beispielsweise die folgende Konfiguration am Ende der Datei gefunden:

# Konfigurationsdateien in "/etc/httpd/conf laden" laden.D "Verzeichnis, falls vorhanden. Einbeziehung von Conf.D/*.Conf 

Auf Debian stattdessen:

# Fügen Sie die virtuellen Host-Konfigurationen hinzu: Includeoptional-Websites-fähig/*.Conf 

Wir können feststellen, dass der Pfad, aus dem die Dateien einbezogen werden sollten, relativ zum Serverroot ist. Der Integrieren Die Richtlinie wird verwendet, um die virtuellen Host -Dateien einzuschließen, die mit dem benannt werden sollten .Conf Suffix. Hier das Enthalten Richtlinie könnte auch verwendet werden; Was ist der Unterschied zwischen den beiden? Beide arbeiten genau auf die gleiche Weise, die Integrieren Die Richtlinie verursacht jedoch keinen Fehler, wenn Platzhalter verwendet werden (wie in diesem Fall) und keine Übereinstimmung gefunden oder wenn ein Pfad nicht vorhanden ist, im Allgemeinen im Allgemeinen.

Damit dieses Setup funktioniert, sollte auch ein richtiger DNS -Eintrag konfiguriert werden. Wenn wir jedoch vor Ort arbeiten, können wir einfach eine Linie in die hinzufügen /etc/hosts Datei. Zum Beispiel:

127.0.0.1 www.prüfen.Lan 

Wenn die Konfigurationen der virtuellen Hosts zunehmen, kann ihr Management leicht problematisch werden. Eine mögliche Lösung für dieses Problem besteht darin, dynamisch generierte virtuelle Hosts zu verwenden. Mal sehen, wie es mit dem geht mod_vhost_alias Modul.

Laden des Moduls mod_vhost_alias

Das erste, was wir tun müssen, ist zu prüfen, ob die mod_vhost_alias Modul ist aktiviert. Der Befehl, den wir für diesen Zweck ausführen möchten, hängt von der Verteilung ab, die wir verwenden. Auf Fedora und einer anderen Verteilung der Red Hat -Familie können wir Folgendes verwenden:

$ httpd -m | grep -i vhost_alias 

Auf Debian stattdessen:

$ apachectl -m | grep -i vhost_alias 

Durch das Bestehen der -M Option zur httpd (oder Apachektl) Befehl erhalten wir eine Liste von geladenen statischen und gemeinsam genutzten Modulen. Wenn Sie die Ausgabe in Grep verleeren, können wir überprüfen, ob das von uns benötigte Modul darin ist. Falls das Modul nicht geladen ist, können wir bei Debian und seinen Derivaten den folgenden Befehl ausführen:

$ sudo a2enmod vhost_alias && sudo systemctl starten Sie Apache2 neu 


Der A2enmod Der Befehl erstellt einen symbolischen Link zum /etc/apache2/mods-verfügbar/mod_vhost_alias.So Datei in die /etc/apache2/mods-fähig Verzeichnis (ähnlich wie das der a2ensit Der Befehl für virtuelle Hosts -Konfigurationen), von dem Module geladen werden.

Auf der Red Hat of Distribution befindet sich die Liste der geladenen Basismodule in der /etc/httpd/conf.Module.D/00-Base.Conf Datei. Jedes Modul ist mit dem beladen LoadModule Richtlinie. Wenn aus irgendeinem Grund die Vhost_alias Die Modulzeile (67) wird kommentiert, entfernen Sie einfach den Kommentar, speichern Sie die Änderung und laden Sie den HTTPD -Dienst neu:

$ sudo systemctl starten Sie HTTPD neu starten 

Sobald das Modul aktiviert ist, können wir mit der tatsächlichen Konfiguration fortfahren.

Erstellen dynamischer virtueller Hosts

Das Setup, das wir erstellen, basiert auf der Tatsache, dass die mod_vhost_alias Das Modul speichert die dOT-getrennten Komponenten des angeforderten virtuellen Hostnamens in einigen Variablen, auf die wir uns in der Zeichenfolge verweisen und interpolieren können, um das Virtual Host-Dokument zu definieren. Wenn wir das nehmen www.prüfen.Lan Virtueller Host als Beispiel werden wir haben:

  • %0: Der gesamte virtuelle Hostname
  • %1: "www"
  • %2: "Test"
  • %3: "Lan"

Negative Zahlen könnten auch verwendet werden, sodass wir beispielsweise Folgendes haben werden:

  • %-1 Der letzte Teil des Namens, in diesem Fall "Lan"
  • %-2 Der vorletzte Teil, in diesem Fall "Test"

Es ist sogar möglich, jede Komponente des virtuellen Hostnamens von einem bestimmten Port vor oder rückwärts anzugeben. Zum Beispiel, %2+ bedeutet "aus dem zweiten Teil weiter" und %-2+ 'verursacht die vorletzte Komponente und alle Komponenten, aus denen sie vorangeht, um eingeschlossen zu werden.

Angenommen, wir wollen die verwenden /var/www/ Verzeichnis als Basis aller virtuellen Hosts können wir die folgende Konfiguration in einer Datei erstellen. Nennen wir es Dynamic_vhost.Conf:

 UsecanonicalName off virtualDocumentroot "/var/www/%-2"  

Erklären wir die obige Konfiguration. Zunächst benutzten wir die UsecanonicalName Richtlinie und setzen Sie es auf "Aus": Wir haben dies getan, um sicherzustellen. Wir benutzten die als die VirtualDocumentroot Richtlinie. Diese Richtlinie ist erforderlich, um einen dynamischen Pfad für das Dokumentstamm eines virtuellen Hosts durch die Verwendung der oben gesehenen Variablen festzulegen, die bei der Verwaltung einer Anfrage bewertet werden.

Wenn das www.prüfen.Lan Der virtuelle Host wird angefordert, automatisch werden die Dateien, die dafür serviert werden sollen /var/www/test Verzeichnis. Die Verwendung der Verwendung der %-2 Der negative Index hat den Vorteil, dass das Setup beides funktioniert www.prüfen.Lan und für prüfen.Lan, Da funktioniert es rückwärts.

Dies ist offensichtlich nur ein Beispiel dafür, was mit dem erreicht werden kann mod_vhost_alias Modul, und Sie können die Konfiguration erstellen, die Ihnen besser passt.



Nachteile

Diese Art von Setup ist sehr praktisch, wenn der gesamte virtuelle Host, den wir verwalten, den ziemlich ähnlich sind und dasselbe Setup benötigt, aber seine Nachteile haben, was je nach Situation ziemlich relevant sein kann. Erstens ist es nicht möglich, virtuell-spezifische Einstellungen anzugeben, wenn nicht mit der Verwendung von .HTaccess -Dateien); Diese Art von Setup verursacht auch Probleme, wenn sie zusammen mit Standardkonfigurationen für virtuelle Hosts verwendet werden. Schließlich werden die Anfragen für alle virtuellen Hosts in derselben Datei angemeldet.

Schlussfolgerungen

Der Apache -Webserver kann dank der Verwendung von virtuellen Hosts mehrere Websites und Ressourcen von einem einzelnen Maschine bedienen. Wenn die Anzahl der virtuellen Hosts anfängt, die Anzahl zu erhöhen. Wenn sie ähnliche Einstellungen haben, können wir dieses Problem mit dynamisch generierten virtuellen Hosts umgehalten, wobei wir das nutzen können mod_vhost_alias Modul.

In diesem Artikel haben wir gesehen. Wir haben auch festgestellt. Schließlich haben wir gesehen, was die Nachteile der Verwendung dieses Setups sind.

Verwandte Linux -Tutorials:

  • So migrieren Sie Apache in Nginx, indem Sie virtuelleHosts in…
  • Firefox unter Linux - Ihre Verbindung ist nicht sicher
  • Vergleich von Linux Apache Pre -Onk -vs -Worker -MPMs
  • Dinge zu installieren auf Ubuntu 20.04
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • So installieren Sie Ubuntu 20.04 auf VirtualBox
  • Liste der besten Kali -Linux -Tools für Penetrationstests und…
  • Apache IP und name -basierte virtuelle Hosts erläutert
  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Mint 20: Besser als Ubuntu und Microsoft Windows?