So richten Sie virtuelle Apache-Hosts unter Debian 8 ein

Einführung

Der Apache-Webserver ist die beliebteste Methode zum Bereitstellen von Webinhalten im Internet. Es macht mehr als die Hälfte aller aktiven Websites im Internet aus und ist äußerst leistungsfähig und flexibel.

Apache unterteilt seine Funktionen und Komponenten in einzelne Einheiten, die Sie unabhängig voneinander anpassen können. Die Basiseinheit, die eine einzelne Site oder Domain beschreibt, wird als virtueller Host bezeichnet.

Bei Verwendung virtueller Hosts können Sie einen Server zum Hosten mehrerer Domänen oder Sites von einer einzelnen Schnittstelle oder IP-Adresse aus verwenden, indem Sie einen entsprechenden Mechanismus verwenden. Sie konfigurieren eine Anforderung für eine Domain, um den Besucher zu einem bestimmten Verzeichnis mit den Informationen dieser Site zu leiten. Mit anderen Worten, Sie können mehr als eine Website auf einem einzelnen Server hosten. Dieses Schema ist ohne Software-Limit erweiterbar, solange Ihr Server die Last bewältigen kann.

In diesem Tutorial richten Sie zwei virtuelle Apache-Hosts auf einem Debian 8-Server ein, die den Besuchern je nach der von ihnen besuchten Domain unterschiedliche Inhalte bereitstellen.

Voraussetzungen

Um dieses Tutorial abzuschließen, benötigen Sie:

In diesem Handbuch erstellen wir virtuelle Hosts für "+ example.com " und " test.com +". Sie können jedoch Ihre eigenen Domänen oder Werte ersetzen, während Sie den Anweisungen folgen. Um Ihre Domainnamen auf Ihren Server zu verweisen, folgen Sie unserem Tutorial How To Set Up a Host Name mit DigitalOcean.

Wenn Sie keine Domains zum Spielen zur Verfügung haben, können Sie "+ example.com " und " test.com +" verwenden und Schritt 5 dieses Tutorials befolgen, um Ihre lokale Hosts-Datei so zu konfigurieren, dass diese Domains der IP-Adresse Ihres Servers zugeordnet werden . Auf diese Weise können Sie Ihre Konfiguration von Ihrem lokalen Computer aus testen.

Schritt 1 - Erstellen der Verzeichnisstruktur

Der erste Schritt, den wir unternehmen werden, ist die Erstellung einer Verzeichnisstruktur, die die Site-Daten enthält, die wir den Besuchern zur Verfügung stellen.

Unser document root, das Verzeichnis der obersten Ebene, in dem Apache nach Inhalten sucht, die bereitgestellt werden sollen, wird unter dem Verzeichnis + / var / www + auf einzelne Verzeichnisse gesetzt. Für jeden virtuellen Host, den wir konfigurieren, erstellen wir ein Verzeichnis.

In jedem dieser Verzeichnisse erstellen wir einen Ordner mit dem Namen "+ public_html ", der die Webseiten enthält, die wir bedienen möchten. Dies gibt uns ein wenig mehr Flexibilität bei der Bereitstellung komplexerer Webanwendungen in der Zukunft. Der Ordner " public_html +" enthält den Webinhalt, den wir bereitstellen möchten, und der übergeordnete Ordner kann Skripts oder Anwendungscode zur Unterstützung von Webinhalten enthalten.

Erstellen Sie die Verzeichnisse mit den folgenden Befehlen:

sudo mkdir -p /var/www//public_html
sudo mkdir -p /var/www//public_html

Da wir die Verzeichnisse mit + sudo + erstellt haben, gehören sie unserem Root-Benutzer. Wenn wir möchten, dass unser regulärer Benutzer Dateien in unseren Webverzeichnissen ändern kann, ändern wir den Eigentümer wie folgt:

sudo chown -R $USER:$USER /var/www//public_html
sudo chown -R $USER:$USER /var/www//public_html

Die Variable "+ $ USER " verwendet den Wert des Benutzers, unter dem Sie gerade angemeldet sind, wenn Sie " ENTER " drücken. Auf diese Weise besitzt unser normaler Benutzer jetzt die Unterverzeichnisse " public_html +", in denen wir unseren Inhalt speichern.

Wir sollten auch unsere Berechtigungen ein wenig ändern, um sicherzustellen, dass der Lesezugriff auf das allgemeine Webverzeichnis und alle darin enthaltenen Dateien und Ordner zulässig ist, damit die Seiten ordnungsgemäß bereitgestellt werden können. Führen Sie diesen Befehl aus, um die Berechtigungen für den Ordner "+ / var / www +" und seine untergeordneten Elemente zu ändern:

sudo chmod -R 755 /var/www

Wenn Sie mit dem Verwalten von Berechtigungen unter Linux noch nicht vertraut sind, lesen Sie this tutorial.

Ihr Webserver sollte nun über die Berechtigungen verfügen, die er zum Bereitstellen von Inhalten benötigt, und Ihr Benutzer sollte in der Lage sein, Inhalte in den erforderlichen Ordnern zu erstellen. Erstellen wir eine HTML-Datei für jede Site.

Wir haben unsere Verzeichnisstruktur eingerichtet. Lassen Sie uns einige Inhalte erstellen, die geliefert werden sollen.

Schritt 2 - Erstellen von Standardseiten für jeden virtuellen Host

Erstellen wir für jede Site eine einfache "+ index.html" -Seite. Auf diese Weise können wir sicherstellen, dass unsere virtuellen Hosts später ordnungsgemäß konfiguriert werden.

Beginnen wir mit der Seite für "+ example.com ". Bearbeiten Sie eine neue ` index.html +` Datei mit dem folgenden Befehl:

nano /var/www//public_html/index.html

Erstellen Sie in dieser Datei ein einfaches HTML-Dokument, das angibt, dass der Besucher die Homepage von "+ example.com +" besucht:

/var/www/example.com/public_html/index.html

<html>
 <head>
   <title>Welcome to !</title>
 </head>
 <body>
   <h1>Success! The  virtual host is working!</h1>
 </body>
</html>

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Kopieren Sie nun diese Datei auf die Seite + test.com +:

cp /var/www//public_html/index.html /var/www//public_html/index.html

Dann öffnen Sie die Datei in Ihrem Editor:

nano /var/www//public_html/index.html

Ändern Sie die Datei so, dass sie auf "+ test.com " anstelle von " example.com +" verweist:

/var/www/test.com/public_html/index.html

<html>
 <head>
   <title>Welcome to !</title>
 </head>
 <body> <h1>Success! The  virtual host is working!</h1>
 </body>
</html>

Speichern und schließen Sie diese Datei. Sie haben jetzt die Seiten, die zum Testen der Konfiguration des virtuellen Hosts erforderlich sind. Als nächstes konfigurieren wir die virtuellen Hosts.

Schritt 3 - Neue virtuelle Hostdateien erstellen

Virtuelle Hostdateien geben die tatsächliche Konfiguration unserer virtuellen Hosts an und bestimmen, wie der Apache-Webserver auf verschiedene Domänenanforderungen reagiert.

Apache wird mit einer virtuellen Standardhostdatei mit dem Namen "+ 000-default.conf +" geliefert, die Sie als Ausgangspunkt verwenden können. Kopieren Sie diese Datei für die erste Domain:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/.conf

Öffnen Sie die neue Datei in Ihrem Editor:

sudo nano /etc/apache2/sites-available/.conf

Die Datei sieht ungefähr so ​​aus wie das folgende Beispiel mit einigen zusätzlichen Kommentaren:

/etc/apache2/sites-available/example.com.conf

<VirtualHost *:80>

       ServerAdmin webmaster@localhost
       DocumentRoot /var/www/html

       ErrorLog ${APACHE_LOG_DIR}/error.log
       CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Dieser virtuelle Host entspricht jeglichen Anforderungen, die an Port + 80 +, dem Standard-HTTP-Port, gestellt werden. Nehmen Sie einige Änderungen an dieser Konfiguration vor und fügen Sie einige neue Anweisungen hinzu.

Ändern Sie zunächst die Anweisung "+ ServerAdmin +" in eine E-Mail, über die der Site-Administrator E-Mails empfangen kann.

/etc/apache2/sites-available/example.com.conf

ServerAdmin

Als nächstes müssen wir zwei neue Richtlinien hinzufügen. Der erste mit dem Namen "+ Servername " legt die Basisdomäne für diese virtuelle Hostdefinition fest. Der zweite, " ServerAlias ​​", definiert weitere Namen, die übereinstimmen sollten, als ob sie der Basisname wären. Dies ist nützlich, um zusätzliche Hosts zu finden, die Sie definiert haben. Daher funktionieren sowohl " example.com " als auch " www.example.com +", sofern beide Hosts auf die IP-Adresse dieses Servers verweisen.

Fügen Sie diese beiden Direktiven direkt nach der Zeile "+ ServerAdmin +" zu Ihrer Konfigurationsdatei hinzu:

/etc/apache2/sites-available/example.com.conf

<VirtualHost *:80>

       ServerAdmin webmaster@localhost


       DocumentRoot /var/www/html
...

Ändern Sie als Nächstes den Speicherort des Dokumentstamms für diese Domäne, indem Sie die Direktive "+ DocumentRoot +" so ändern, dass sie auf das Verzeichnis verweist, das Sie für diesen Host erstellt haben:

DocumentRoot /var/www//public_html

Sobald Sie diese Änderungen vorgenommen haben, sollte Ihre Datei folgendermaßen aussehen:

/etc/apache2/sites-available/example.com.conf

<VirtualHost *:80>
       ServerAdmin


       DocumentRoot /var/www//public_html
       ErrorLog ${APACHE_LOG_DIR}/error.log
       CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Speichern und schließen Sie die Datei.

Erstellen Sie dann die zweite Konfigurationsdatei, indem Sie eine Kopie dieser Datei erstellen:

sudo cp /etc/apache2/sites-available/.conf /etc/apache2/sites-available/.conf

Öffnen Sie die neue Datei in Ihrem Editor:

sudo nano /etc/apache2/sites-available/.conf

Ändern Sie dann die relevanten Einstellungen, um auf Ihre zweite Domain zu verweisen. Wenn Sie fertig sind, sieht Ihre Datei folgendermaßen aus:

/etc/apache2/sites-available/test.com.conf

<VirtualHost *:80>
   ServerAdmin
   ServerName
   ServerAlias
   DocumentRoot /var/www//public_html
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Speichern und schließen Sie die Datei.

Nachdem wir unsere virtuellen Hostdateien erstellt haben, können wir sie aktivieren.

Schritt 4 - Aktivieren der neuen virtuellen Hostdateien

Sie haben die Ordner und die Konfigurationsdateien des virtuellen Hosts erstellt, Apache verwendet sie jedoch erst, wenn Sie sie aktivieren. Sie können das Tool "+ a2ensite +" verwenden, um jede Ihrer Sites zu aktivieren.

Aktiviere die erste Seite:

sudo a2ensite .conf

Die folgende Ausgabe wird angezeigt, wenn Ihre Datei keine Syntaxfehler oder Tippfehler enthält:

OutputEnabling site example.com.
To activate the new configuration, you need to run:
 service apache2 reload

Damit Ihre Änderungen wirksam werden, müssen Sie Apache neu laden. Aber bevor Sie dies tun, aktivieren Sie die andere Site:

sudo a2ensite .conf

In einer ähnlichen Meldung wird angezeigt, dass die Site aktiviert wurde:

OutputEnabling site test.com.
To activate the new configuration, you need to run:
 service apache2 reload

Deaktivieren Sie anschließend die in "+ 000-default.conf " definierte Standardwebsite mit dem Befehl " a2dissite +":

sudo a2dissite 000-default.conf

Starten Sie jetzt Apache neu:

sudo systemctl restart apache2

Die Sites sind jetzt konfiguriert. Testen wir sie. Wenn Sie echte Domains verwenden, die so konfiguriert sind, dass sie auf die IP-Adresse Ihres Servers verweisen, können Sie den nächsten Schritt überspringen. Wenn Ihre Domains jedoch noch nicht vorgeschlagen wurden oder Sie nur testen, lesen Sie weiter, um zu erfahren, wie Sie dieses Setup auf Ihrem lokalen Computer testen können.

Schritt 5 - Lokale Hosts-Datei einrichten (optional)

Wenn Sie zum Testen dieses Verfahrens keine tatsächlichen Domänennamen verwendet haben und stattdessen einige Beispieldomänen verwendet haben, können Sie die Funktionalität dieses Prozesses zumindest testen, indem Sie die Datei "+ hosts +" auf Ihrem lokalen Computer vorübergehend ändern.

Dadurch werden alle Anforderungen für die von Ihnen konfigurierten Domänen abgefangen und an Ihren VPS-Server weitergeleitet, genau wie dies das DNS-System tun würde, wenn Sie registrierte Domänen verwenden würden. Dies funktioniert jedoch nur von Ihrem Computer aus und ist nur zu Testzwecken nützlich.

Stellen Sie sicher, dass Sie diese Schritte auf Ihrem lokalen Computer und nicht auf Ihrem VPS-Server ausführen. Sie müssen auch das Administrationskennwort des lokalen Computers kennen oder Mitglied der Administrationsgruppe sein.

Wenn Sie sich auf einem Mac- oder Linux-Computer befinden, bearbeiten Sie Ihre lokale Datei mit Administratorrechten, indem Sie Folgendes eingeben:

sudo nano /etc/hosts

Wenn Sie unter Windows arbeiten, öffnen Sie eine Eingabeaufforderung mit Administratorrechten und geben Sie Folgendes ein:

notepad %windir%\system32\drivers\etc\hosts

Fügen Sie nach dem Öffnen der Datei eine Zeile hinzu, die die öffentliche IP-Adresse Ihres Servers jedem Domänennamen zuordnet, wie im folgenden Beispiel gezeigt:

/ etc / hosts

127.0.0.1   localhost
...

Dadurch werden alle Anforderungen für "+ example.com " und " test.com " auf Ihren Computer geleitet und an Ihren Server unter " 111.111.111.111 +" gesendet.

Speichern und schließen Sie die Datei. Jetzt können Sie Ihr Setup testen. Wenn Sie sicher sind, dass die Dinge funktionieren, entfernen Sie die beiden Zeilen aus der Datei.

Schritt 6 - Testen Sie Ihre Ergebnisse

Nachdem Sie Ihre virtuellen Hosts konfiguriert haben, können Sie Ihr Setup einfach testen, indem Sie zu den Domänen wechseln, die Sie in Ihrem Webbrowser konfiguriert haben. Besuchen Sie die erste Website unter "+ http: // example.com +" und Sie sehen eine Seite, die so aussieht:

image: https: //assets.digitalocean.com/articles/apache_vhosts_debian8/hPVmDq1.png [Apache example.com result]

Wenn Sie Ihren zweiten Host unter "+ http: // test.com +" besuchen können, wird die Datei angezeigt, die Sie für Ihre zweite Site erstellt haben:

Wenn beide Standorte ordnungsgemäß funktionieren, haben Sie zwei virtuelle Hosts auf demselben Server erfolgreich konfiguriert.

Fazit

Sie haben jetzt einen einzelnen Server, der zwei separate Domänennamen verwaltet. Sie können diesen Prozess erweitern, indem Sie die folgenden Schritte ausführen, um zusätzliche virtuelle Hosts hinzuzufügen.

Es gibt keine Softwarebeschränkung für die Anzahl der Domänennamen, die Apache verarbeiten kann. Sie können also so viele Domänennamen erstellen, wie Ihr Server verarbeiten kann.

Folgen Sie dem Tutorial How To Secure, um Apache für sichere Inhalte zu verwenden Apache mit Let’s Encrypt unter Debian 8. Um Apache vor Ihrer Webanwendung zu verwenden, folgen Sie https://www.digitalocean.com/community/tutorials/how-to-use-apache-as-a-reverse-proxy-with-mod_proxy-on-debian-8 [Wie man Apache als Reverse Proxy mit mod_proxy unter Debian 8 benutzt].