GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So konfigurieren Sie mehrere Websites mit dem Apache-Webserver

In meinem letzten Beitrag habe ich erklärt, wie man einen Apache-Webserver für eine einzelne Website konfiguriert. Es stellte sich als sehr einfach heraus. In diesem Beitrag zeige ich Ihnen, wie Sie mehrere Websites mit einer einzigen Instanz von Apache bedienen können.

Hinweis:Ich habe diesen Artikel auf einer virtuellen Maschine mit Fedora 27 mit Apache 2.4.29 geschrieben. Wenn Sie eine andere Distribution oder Version von Fedora haben, können die von Ihnen verwendeten Befehle und die Speicherorte und Inhalte der Konfigurationsdateien unterschiedlich sein.

Wie in meinem vorherigen Artikel erwähnt, befinden sich alle Konfigurationsdateien für Apache in /etc/httpd/conf und /etc/httpd/conf.d . Die Daten für die Webseiten befinden sich in /var/www standardmäßig. Bei mehreren Websites müssen Sie mehrere Standorte angeben, einen für jede Website, die Sie hosten.

Namensbasiertes virtuelles Hosting

Beim namensbasierten virtuellen Hosting können Sie eine einzige IP-Adresse für mehrere Websites verwenden. Moderne Webserver, einschließlich Apache, verwenden den hostname Teil der angegebenen URL, um festzustellen, welcher virtuelle Webhost auf die Seitenanforderung antwortet. Dies erfordert nur wenig mehr Konfiguration als für eine einzelne Site.

Selbst wenn Sie nur mit einer einzigen Website beginnen, empfehle ich Ihnen, diese als virtuellen Host einzurichten, was das spätere Hinzufügen weiterer Websites erleichtert. In diesem Artikel mache ich dort weiter, wo wir im vorherigen Artikel aufgehört haben, also müssen Sie die ursprüngliche Website einrichten, eine namensbasierte virtuelle Website.

Vorbereitung der ursprünglichen Website

Bevor Sie eine zweite Website einrichten, müssen Sie das namensbasierte virtuelle Hosting für die vorhandene Website zum Laufen bringen. Wenn Sie noch keine Website haben, gehen Sie zurück und erstellen Sie jetzt eine.

Sobald Sie Ihre Site haben, fügen Sie die folgende Strophe am Ende ihrer /etc/httpd/conf/httpd.conf hinzu Konfigurationsdatei (das Hinzufügen dieser Zeilengruppe ist die einzige Änderung, die Sie an httpd.conf vornehmen müssen Datei):

<VirtualHost 127.0.0.1:80>
    DocumentRoot /var/www/html
    ServerName www.site1.org
</VirtualHost>

Dies wird die erste Zeilengruppe für virtuelle Hosts sein, und sie sollte an erster Stelle bleiben, um sie zur Standarddefinition zu machen. Das bedeutet, dass der HTTP-Zugriff auf den Server über die IP-Adresse oder über einen anderen Namen, der in diese IP-Adresse aufgelöst wird, aber keine spezifische benannte Host-Konfigurationszeile aufweist, an diesen virtuellen Host geleitet wird. Alle anderen Konfigurationszeilen für virtuelle Hosts sollten dieser Zeile folgen.

Außerdem müssen Sie Ihre Websites mit Einträgen in /etc/hosts einrichten Namensauflösung bereitzustellen. Letztes Mal haben wir nur die IP-Adresse für localhost verwendet . Normalerweise würde dies mit dem Namensdienst erfolgen, den Sie verwenden; B. Google oder Godaddy. Für Ihre Test-Website tun Sie dies, indem Sie localhost einen neuen Namen hinzufügen Zeile in /etc/hosts . Fügen Sie die Einträge für beide Websites hinzu, damit Sie diese Datei später nicht erneut bearbeiten müssen. Das Ergebnis sieht so aus:

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 www.site1.org www.site2.org

Lassen Sie uns auch /var/www/html/index.html ändern Datei, um etwas expliziter zu sein. Es sollte so aussehen (mit etwas zusätzlichem Text, um dies als Website Nummer 1 zu identifizieren):

<h1>Hello World</h1> 

Web site 1.

Starten Sie den HTTPD-Server neu, um die Änderungen an httpd zu aktivieren Aufbau. Sie können die Website dann mit dem Textmodus-Browser von Lynx über die Befehlszeile anzeigen.

[root@testvm1 ~]# systemctl restart httpd
[root@testvm1 ~]# lynx www.site1.org

                                              Hello World
  Web site 1.
<snip>
Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
Arrow keys: Up and Down to move.  Right to follow a link; Left to go back.
H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list

Sie können sehen, dass der überarbeitete Inhalt der ursprünglichen Website angezeigt wird und dass keine offensichtlichen Fehler vorhanden sind. Drücken Sie die Taste „Q“ gefolgt von „Y“, um den Lynx-Webbrowser zu beenden.

Zweite Website konfigurieren

Jetzt können Sie die zweite Website einrichten. Erstellen Sie mit dem folgenden Befehl eine neue Website-Verzeichnisstruktur:

[root@testvm1 html]# mkdir -p /var/www/html2

Beachten Sie, dass die zweite Website einfach ein zweiter html ist Verzeichnis im selben /var/www Verzeichnis als erste Seite.

Erstellen Sie nun eine neue Indexdatei, /var/www/html2/index.html , mit folgendem Inhalt (diese Indexdatei ist etwas anders, um sie von der für die ursprüngliche Website zu unterscheiden):

<h1>Hello World -- Again</h1> 

Web site 2.

Erstellen Sie eine neue Konfigurationszeile in httpd.conf für die zweite Website und platzieren Sie sie unter der vorherigen Zeile des virtuellen Hosts (die beiden sollten sehr ähnlich aussehen). Diese Strophe teilt dem Webserver mit, wo er die HTML-Dateien für die zweite Site finden kann.

<VirtualHost 127.0.0.1:80>
    DocumentRoot /var/www/html2
    ServerName www.site2.org
</VirtualHost>

Starten Sie HTTPD erneut und verwenden Sie Lynx, um die Ergebnisse anzuzeigen.

[root@testvm1 httpd]# systemctl restart httpd
[root@testvm1 httpd]# lynx www.site2.org

                                    Hello World -- Again

   Web site 2.

<snip>
Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
Arrow keys: Up and Down to move.  Right to follow a link; Left to go back.
H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list

Hier habe ich die resultierende Ausgabe so komprimiert, dass sie in diesen Raum passt. Der Unterschied auf der Seite zeigt an, dass dies die zweite Website ist. Um beide Websites gleichzeitig anzuzeigen, öffnen Sie eine andere Terminalsitzung und verwenden Sie den Lynx-Webbrowser, um die andere Website anzuzeigen.

Andere Überlegungen

Dieses einfache Beispiel zeigt, wie zwei Websites mit einer einzigen Instanz des Apache HTTPD-Servers bereitgestellt werden. Die Konfiguration der virtuellen Hosts wird etwas komplexer, wenn andere Faktoren berücksichtigt werden.

Beispielsweise möchten Sie möglicherweise einige CGI-Skripte für eine oder beide dieser Websites verwenden. Dazu erstellen Sie Verzeichnisse für die CGI-Programme in /var/www :/var/www/cgi-bin und /var/www/cgi-bin2 , um mit der HTML-Verzeichnisbenennung konsistent zu sein. Anschließend müssten Sie den Zeilengruppen des virtuellen Hosts Konfigurationsanweisungen hinzufügen, um die Verzeichnisposition für die CGI-Scripts anzugeben. Jede Website könnte auch Verzeichnisse haben, aus denen Dateien heruntergeladen werden können; dies würde auch Einträge in der entsprechenden Zeilengruppe des virtuellen Hosts erfordern.

Die Apache-Website beschreibt andere Methoden zum Verwalten mehrerer Websites sowie Konfigurationsoptionen von der Leistungsoptimierung bis zur Sicherheit.

Apache ist ein leistungsstarker Webserver, mit dem Websites von einfach bis hochkomplex verwaltet werden können. Obwohl sein Gesamtanteil schrumpft, bleibt Apache der am häufigsten verwendete HTTPD-Server im Internet.


Linux
  1. So konfigurieren Sie einen Apache-Webserver

  2. So sichern Sie den Apache-Webserver mit Let’s Encrypt auf RHEL 8

  3. So erstellen Sie virtuelle Hosts auf Apache Server, um mehrere Websites zu hosten

  4. So installieren Sie den Apache-Webserver unter Ubuntu

  5. So installieren und konfigurieren Sie den Apache-Webserver unter Ubuntu 13.10

So installieren Sie den Apache-Webserver unter Debian 11

Hosten Sie mehrere Websites auf einem einzigen Server mit Apache unter Ubuntu 18.04

So installieren und konfigurieren Sie ModEvasive mit Apache unter Ubuntu 18.04

Wie man die Leistung von Webservern mit Apache Bench bewertet

So installieren und konfigurieren Sie den Caddy Web Server mit PHP unter Rocky Linux 8

So installieren und konfigurieren Sie einen LAMP-Webserver unter Ubuntu 18.04