IP-basierte virtuelle Server: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Zeile 61: Zeile 61:
* [[SuEXEC]]
* [[SuEXEC]]


[[Kategorie:Apache/HTTP/Konfiguration]]
[[Kategorie:Apache/HTTP/Virtuelle Server]]

Version vom 4. Mai 2024, 12:05 Uhr

Was ist IP-basiertes virtuelles Hosting?

IP-basiertes virtuelles Hosting ist eine Methode zur Anwendung verschiedener Richtlinien auf der Grundlage der IP-Adresse und des Ports, über die eine Anfrage eingeht.

  • Meistens wird dies verwendet, um verschiedene Websites auf verschiedenen Ports oder Schnittstellen bereitzustellen.

In vielen Fällen sind namensbasierte virtuelle Hosts praktischer, da sie es vielen virtuellen Hosts ermöglichen, eine einzige Adresse/einen einzigen Port zu nutzen (siehe Namensbasierte vs. IP-basierte virtuelle Hosts ).

Systemanforderungen

Wie der Begriff " schon sagt, muss der Server für jeden IP-basierten virtuellen Host eine andere Kombination aus IP-Adresse und Port haben.

  • Dies kann dadurch erreicht werden, dass der Rechner über mehrere physische Netzwerkverbindungen verfügt, oder durch die Verwendung virtueller Schnittstellen, die von den meisten modernen Betriebssystemen unterstützt werden (Einzelheiten finden Sie in der Systemdokumentation; diese werden häufig als "ip aliases" bezeichnet, und der Befehl "ifconfig" wird am häufigsten zu ihrer Einrichtung verwendet), und/oder durch die Verwendung mehrerer Portnummern.

In der Terminologie des Apache HTTP Servers ist die Verwendung einer einzigen IP-Adresse, aber mehrerer TCP-Ports, auch IP-basiertes virtuelles Hosting.

So richten Sie Apache ein

Es gibt zwei Möglichkeiten, den Apache für die Unterstützung mehrerer Hosts zu konfigurieren.

  • Entweder führen Sie für jeden Hostnamen einen eigenen httpd-Daemon aus, oder Sie lassen einen einzigen Daemon laufen, der alle virtuellen Hosts unterstützt.

Verwenden Sie mehrere Dämonen, wenn:

  • Es gibt Probleme mit der Sicherheitspartitionierung, z. B. möchte Unternehmen1 nicht, dass jemand bei Unternehmen2 seine Daten außer über das Web lesen kann.
  • In diesem Fall bräuchten Sie zwei Daemons, die jeweils mit unterschiedlichen Benutzer-, Gruppen-, Listen- und ServerRoot-Einstellungen laufen.
  • Sie können sich den Speicher- und Dateideskriptorbedarf leisten, der entsteht, wenn Sie jeden IP-Alias auf dem Rechner abhören.
  • Es ist nur möglich, auf die "Wildcard"-Adresse oder auf bestimmte Adressen zu hören.
  • Wenn Sie also aus irgendeinem Grund eine bestimmte Adresse abhören müssen, dann müssen Sie alle bestimmten Adressen abhören. (Obwohl ein httpd auf N-1 der Adressen hören könnte, und ein anderer auf die verbleibende Adresse).

Verwenden Sie einen einzelnen Daemon, wenn:

  • Die gemeinsame Nutzung der httpd-Konfiguration durch virtuelle Hosts ist zulässig.
  • Der Rechner bedient eine große Anzahl von Anfragen, so dass der Leistungsverlust bei der Ausführung separater Daemons erheblich sein kann.

Mehrere Daemons einrichten

Erstellen Sie für jeden virtuellen Host eine eigene httpd-Installation.

  • Verwenden Sie für jede Installation die Listen-Direktive in der Konfigurationsdatei, um auszuwählen, welche IP-Adresse (oder welcher virtuelle Host) von diesem Daemon bedient wird, z. B.
Listen 192.0.2.100:80

Es wird empfohlen, eine IP-Adresse anstelle eines Hostnamens zu verwenden (siehe DNS-Caveats).

Einrichten eines einzelnen Daemons mit virtuellen Hosts

In diesem Fall wird ein einziger httpd Anfragen für den Hauptserver und alle virtuellen Hosts bearbeiten.

  • Die Direktive VirtualHost in der Konfigurationsdatei wird verwendet, um die Werte der Konfigurationsdirektiven ServerAdmin, ServerName, DocumentRoot, ErrorLog und TransferLogoder CustomLogfür jeden virtuellen Host auf unterschiedliche Werte zu setzen. z.B.
<VirtualHost 172.20.30.40:80>
ServerAdminwebmaster@www1.example.com DocumentRoot "/www/vhosts/www1"
ServerName www1.example.com ErrorLog "/www/logs/www1/error_log"
CustomLog "/www/logs/www1/access_log" kombiniert</VirtualHost>
<VirtualHost 172.20.30.50:80>
ServerAdminwebmaster@www2.example.org DocumentRoot "/www/vhosts/www2"
ServerName www2.example.org ErrorLog "/www/logs/www2/error_log"
CustomLog "/www/logs/www2/access_log" combined</VirtualHost>

Es wird empfohlen, in der <VirtualHost>-Direktive eine IP-Adresse anstelle eines Hostnamens zu verwenden (siehe DNS-Caveats).

Bestimmte IP-Adressen oder Ports haben Vorrang vor ihren Platzhalter-Äquivalenten, und jeder virtuelle Host, der übereinstimmt, hat Vorrang vor der Basiskonfiguration des Servers.

Fast jede Konfigurationsrichtlinie kann in die VirtualHost-Richtlinie eingefügt werden, mit Ausnahme von Richtlinien, die die Prozesserstellung steuern, und einigen anderen Richtlinien.

  • Um herauszufinden, ob eine Direktive in der VirtualHost-Direktive verwendet werden kann, überprüfen Sie den Kontext mithilfe des Direktivenindex.

SuexecUserGroupkann innerhalb einer VirtualHost-Direktive verwendet werden, wenn der suEXEC-Wrapper verwendet wird.

SICHERHEIT: Wenn Sie angeben, wohin die Protokolldateien geschrieben werden sollen, sollten Sie sich einiger Sicherheitsrisiken bewusst sein, die bestehen, wenn jemand anderes als der Benutzer, der den Apache startet, Schreibzugriff auf das Verzeichnis hat, in das die Dateien geschrieben werden.

  • Siehe das Dokument Sicherheitstipps für weitere Details.

Siehe auch