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 unabhängig voneinander angepasst und konfiguriert werden können. Die Grundeinheit, die eine einzelne Site oder Domäne beschreibt, wird alsvirtual host
bezeichnet.
Mit diesen Bezeichnungen kann der Administrator einen Server zum Hosten mehrerer Domänen oder Sites von einer einzelnen Schnittstelle oder IP-Adresse mithilfe eines entsprechenden Mechanismus verwenden. Dies ist relevant für alle, die mehr als eine Site von einem einzelnen VPS aus hosten möchten.
Jede konfigurierte Domain leitet den Besucher zu einem bestimmten Verzeichnis mit den Informationen dieser Site, ohne dass angegeben wird, dass derselbe Server auch für andere Sites verantwortlich ist. Dieses Schema ist ohne Software-Limit erweiterbar, solange Ihr Server die Last bewältigen kann.
In diesem Handbuch werden wir Sie durch das Einrichten von virtuellen Apache-Hosts auf einem Ubuntu 16.04 VPS führen. Während dieses Vorgangs erfahren Sie, wie Sie unterschiedliche Inhalte für unterschiedliche Besucher bereitstellen, je nachdem, welche Domains sie anfordern.
Voraussetzungen
Bevor Sie mit diesem Lernprogramm beginnen, sollten Siecreate a non-root user wie in den Schritten 1 bis 4 hier beschrieben ausführen.
Sie müssen auch Apache installiert haben, um diese Schritte ausführen zu können. Wenn Sie dies noch nicht getan haben, können Sie Apache überapt-get
auf Ihrem Server installieren:
sudo apt-get update
sudo apt-get install apache2
Nachdem diese Schritte abgeschlossen sind, können wir loslegen.
Für die Zwecke dieses Handbuchs erstellt unsere Konfiguration einen virtuellen Host fürexample.com
und einen anderen fürtest.com
. Auf diese wird im gesamten Handbuch verwiesen, Sie sollten jedoch Ihre eigenen Domänen oder Werte ersetzen, während Sie den Anweisungen folgen.
Folgen Sie diesem Link, umhow to set up your domain names with DigitalOcean zu lernen. Wenn innot Domänen zum Spielen verfügbar sind, können Sie Dummy-Werte verwenden.
Wir werden später zeigen, wie Sie Ihre lokale Hosts-Datei bearbeiten, um die Konfiguration zu testen, wenn Sie Dummy-Werte verwenden. Auf diese Weise können Sie Ihre Konfiguration von Ihrem Heimcomputer aus testen, obwohl Ihre Inhalte anderen Besuchern nicht über den Domainnamen zur Verfügung stehen.
[[Schritt 1 - Erstellen der Verzeichnisstruktur]] == 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.
Unseredocument root
(das Verzeichnis der obersten Ebene, in dem Apache nach Inhalten sucht, die bereitgestellt werden sollen) werden auf einzelne Verzeichnisse unter dem Verzeichnis/var/www
festgelegt. Wir erstellen hier ein Verzeichnis für beide virtuellen Hosts, die wir erstellen möchten.
In jedem der Verzeichnisse vontheseerstellen wir einen Ordner vonpublic_html
, der unsere tatsächlichen Dateien enthält. Dies gibt uns einige Flexibilität in unserem Hosting.
Für unsere Websites erstellen wir beispielsweise folgende Verzeichnisse:
sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/test.com/public_html
Die roten Bereiche stellen die Domainnamen dar, die wir von unserem VPS bereitstellen möchten.
[[Schritt zwei - Gewähren von Berechtigungen]] == Schritt Zwei - Erteilen von Berechtigungen
Jetzt haben wir die Verzeichnisstruktur für unsere Dateien, aber sie gehören unserem Root-Benutzer. Wenn wir möchten, dass unser regulärer Benutzer Dateien in unseren Webverzeichnissen ändern kann, können wir den Eigentümer folgendermaßen ändern:
sudo chown -R $USER:$USER /var/www/example.com/public_html
sudo chown -R $USER:$USER /var/www/test.com/public_html
Die Variable$USER
nimmt den Wert des Benutzers an, bei dem Sie gerade angemeldet sind, wenn SieEnter drücken. Auf diese Weise besitzt unser regulärer Benutzer jetzt die Unterverzeichnissepublic_html
, in denen wir unsere Inhalte speichern werden.
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:
sudo chmod -R 755 /var/www
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.
[[Schritt drei - Erstellen von Demoseiten für jeden virtuellen Host]] == Schritt 3 - Erstellen von Demoseiten für jeden virtuellen Host
Wir haben unsere Verzeichnisstruktur eingerichtet. Lassen Sie uns einige Inhalte erstellen, die geliefert werden sollen.
Wir werden nur eine Demonstration durchführen, daher sind unsere Seiten sehr einfach. Wir erstellen nur eineindex.html
-Seite für jede Site.
Beginnen wir mitexample.com
. Wir können eineindex.html
-Datei in unserem Editor öffnen, indem wir Folgendes eingeben:
nano /var/www/example.com/public_html/index.html
Erstellen Sie in dieser Datei ein einfaches HTML-Dokument, das die Site angibt, mit der es verbunden ist. Meine Datei sieht so aus:
/var/www/example.com/public_html/index.html
Welcome to Example.com!
Success! The example.com virtual host is working!
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Wir können diese Datei kopieren, um sie als Grundlage für unsere zweite Site zu verwenden, indem wir Folgendes eingeben:
cp /var/www/example.com/public_html/index.html /var/www/test.com/public_html/index.html
Wir können dann die Datei öffnen und die relevanten Informationen ändern:
nano /var/www/test.com/public_html/index.html
/var/www/test.com/public_html/index.html
Welcome to Test.com!
Success! The test.com virtual host is working!
Speichern und schließen Sie auch diese Datei. Sie haben jetzt die Seiten, die zum Testen der Konfiguration des virtuellen Hosts erforderlich sind.
[[Schritt 4 - Neue virtuelle Host-Dateien erstellen]] == Schritt 4 - Neue virtuelle Host-Dateien erstellen
Virtuelle Host-Dateien sind die Dateien, die die tatsächliche Konfiguration unserer virtuellen Hosts angeben und bestimmen, wie der Apache-Webserver auf verschiedene Domänenanforderungen reagiert.
Apache wird mit einer virtuellen Standardhostdatei namens000-default.conf
geliefert, die wir als Ausgangspunkt verwenden können. Wir werden es kopieren, um eine virtuelle Hostdatei für jede unserer Domänen zu erstellen.
Wir beginnen mit einer Domain, konfigurieren sie, kopieren sie für unsere zweite Domain und nehmen dann die wenigen weiteren erforderlichen Anpassungen vor. Die Standard-Ubuntu-Konfiguration erfordert, dass jede virtuelle Hostdatei in.conf
endet.
Erstellen Sie die erste virtuelle Hostdatei
Beginnen Sie, indem Sie die Datei für die erste Domain kopieren:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf
Öffnen Sie die neue Datei in Ihrem Editor mit Root-Rechten:
sudo nano /etc/apache2/sites-available/example.com.conf
Die Datei sieht ungefähr so aus (ich habe die Kommentare hier entfernt, um die Annäherung an die Datei zu erleichtern):
/etc/apache2/sites-available/example.com.conf
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Wie Sie sehen, gibt es hier nicht viel. Wir werden die Elemente hier für unsere erste Domain anpassen und einige zusätzliche Anweisungen hinzufügen. Dieser virtuelle Hostabschnitt entspricht den Anforderungen vonany, die an Port 80, dem Standard-HTTP-Port, gestellt werden.
Zunächst müssen wir die AnweisungServerAdmin
in eine E-Mail ändern, über die der Site-Administrator E-Mails empfangen kann.
ServerAdmin [email protected]
Danach müssen wiradd zwei Direktiven. Das erste,ServerName
genannt, legt die Basisdomäne fest, die für diese virtuelle Hostdefinition übereinstimmen soll. Dies wird höchstwahrscheinlich Ihre Domain sein. Der zweite,ServerAlias
genannt, definiert weitere Namen, die übereinstimmen sollten, als ob sie der Basisname wären. Dies ist nützlich, um von Ihnen definierte Hosts wiewww
abzugleichen:
ServerName example.com
ServerAlias www.example.com
Das Einzige, was wir für eine einfache virtuelle Hostdatei ändern müssen, ist der Speicherort des Dokumentenstamms für diese Domäne. Wir haben bereits das benötigte Verzeichnis erstellt, daher müssen wir nur die DirektiveDocumentRoot
ändern, um das von uns erstellte Verzeichnis wiederzugeben:
DocumentRoot /var/www/example.com/public_html
Insgesamt sollte Ihre virtuelle Hostdatei folgendermaßen aussehen:
/etc/apache2/sites-available/example.com.conf
ServerAdmin [email protected]
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Speichern und schließen Sie die Datei.
Kopieren Sie den ersten virtuellen Host und passen Sie ihn für die zweite Domain an
Nachdem wir unsere erste virtuelle Host-Datei erstellt haben, können wir unsere zweite erstellen, indem wir diese Datei kopieren und nach Bedarf anpassen.
Beginnen Sie mit dem Kopieren:
sudo cp /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-available/test.com.conf
Öffnen Sie die neue Datei mit Root-Rechten in Ihrem Editor:
sudo nano /etc/apache2/sites-available/test.com.conf
Sie müssen jetzt alle Informationen ändern, um auf Ihre zweite Domain zu verweisen. Wenn Sie fertig sind, könnte es ungefähr so aussehen:
/etc/apache2/sites-available/test.com.conf
ServerAdmin [email protected]
ServerName test.com
ServerAlias www.test.com
DocumentRoot /var/www/test.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
[[Schritt 5 - Aktivieren der neuen virtuellen Hostdateien]] == Schritt 5 - Aktivieren Sie die neuen virtuellen Hostdateien
Nachdem wir unsere virtuellen Hostdateien erstellt haben, müssen wir sie aktivieren. Apache enthält einige Tools, mit denen wir dies tun können.
Wir können das Toola2ensite
verwenden, um jede unserer Websites wie folgt zu aktivieren:
sudo a2ensite example.com.conf
sudo a2ensite test.com.conf
Deaktivieren Sie als Nächstes die in000-default.conf
definierte Standardwebsite:
sudo a2dissite 000-default.conf
Wenn Sie fertig sind, müssen Sie Apache neu starten, damit die folgenden Änderungen wirksam werden:
sudo systemctl restart apache2
In einer anderen Dokumentation sehen Sie möglicherweise auch ein Beispiel mit dem Befehlservice
:
sudo service apache2 restart
Dieser Befehl funktioniert weiterhin, liefert jedoch möglicherweise nicht die Ausgabe, die Sie auf anderen Systemen gewohnt sind, da er jetzt ein Wrapper um diesystemctl
von systemd ist.
[[Schritt 6 - Einrichten der lokalen Hosts-Datei - optional]] == Schritt 6 - Einrichten der lokalen Hosts-Datei (optional)
Wenn Sie zum Testen dieses Verfahrens keine tatsächlichen Domänennamen verwendet haben, die Sie besitzen, und stattdessen einige Beispieldomänen verwendet haben, können Sie zumindest die Funktionalität dieses Prozesses testen, indem Sie die Dateihosts
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 lediglich zu Testzwecken nützlich.
Stellen Sie sicher, dass Sie diese Schritte auf Ihrem lokalen Computer ausführen und nicht auf Ihrem VPS-Server. Sie müssen das Administrationskennwort des Computers kennen oder auf andere Weise 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 sich auf einem Windows-Computer befinden, können Sie hierfind instructions on altering your hosts file eingeben.
Die Details, die Sie hinzufügen müssen, sind die öffentliche IP-Adresse Ihres VPS-Servers, gefolgt von der Domäne, die Sie verwenden möchten, um diesen VPS zu erreichen.
Für die Domänen, die ich in diesem Handbuch verwendet habe, kann ich unter der Annahme, dass meine VPS-IP-Adresse111.111.111.111
ist, die folgenden Zeilen am Ende meiner Hosts-Datei hinzufügen:
/etc/hosts
127.0.0.1 localhost
127.0.1.1 guest-desktop
111.111.111.111 example.com
111.111.111.111 test.com
Dadurch werden alle Anforderungen fürexample.com
undtest.com
auf unserem Computer weitergeleitet und um111.111.111.111
an unseren Server gesendet. Dies ist das, was wir wollen, wenn wir nicht die Eigentümer dieser Domains sind, um unsere virtuellen Hosts zu testen.
Speichern und schließen Sie die Datei.
[[Schritt sieben - Testen Sie Ihre Ergebnisse]] == Schritt Sieben - 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:
http://example.com
Sie sollten eine Seite sehen, die so aussieht:
Ebenso, wenn Sie Ihre zweite Seite besuchen können:
http://test.com
Sie sehen die Datei, die Sie für Ihre zweite Site erstellt haben:
Wenn beide Sites gut funktionieren, haben Sie die virtuellen Hosts vontwoerfolgreich auf demselben Server konfiguriert.
Wenn Sie die Hosts-Datei Ihres Heimcomputers angepasst haben, möchten Sie möglicherweise die Zeilen löschen, die Sie hinzugefügt haben, nachdem Sie überprüft haben, dass Ihre Konfiguration funktioniert. Dadurch wird verhindert, dass Ihre Hosts-Datei mit Einträgen gefüllt wird, die eigentlich nicht erforderlich sind.
Wenn Sie langfristig darauf zugreifen müssen, sollten Sie einen Domainnamen für jede Site, die Sie benötigen, undsetting it up to point to your VPS server erwerben.
Fazit
Wenn Sie mitgemacht haben, sollten Sie jetzt einen einzelnen Server haben, der zwei separate Domainnamen verwaltet. Sie können diesen Prozess erweitern, indem Sie die oben beschriebenen Schritte ausführen, um zusätzliche virtuelle Hosts zu erstellen.
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.