Hast du einen Server mit einer einzigen öffentlichen IP-Adresse, aber musst mehrere Domänen oder Subdomänen hosten? Was würdest du tun? Dieses Szenario kann für Anfänger verwirrend sein. Aber keine Sorge, dieses Tutorial hat dich abgedeckt, damit du eine NGINX-Subdomäne und mehrere Domänen bedienen kannst.
In diesem Tutorial lernst du, wie du effektiv NGINX-Subdomänen oder mehrere Domänen auf einem Server mit einer einzigen IP-Adresse bedienen kannst!
Wenn du bereit bist, ist es Zeit, loszulegen!
Voraussetzungen
Dieses Tutorial wird mit praktischen Demos geliefert, erfordert jedoch nicht viele Voraussetzungen und setzt voraus, dass du einen Ubuntu Server LTS mit aktivierter SSH-Verbindung und installiertem NGINX hast. Die Demos in diesem Tutorial laufen auf Ubuntu Server LTS 20.04.1.
Einrichten von DNS-Einträgen
Bevor du NGINX-Subdomänen oder mehrere Domänen bedienen kannst, musst du einen A-Eintrag in einem DNS-Control-Panel hinzufügen. Der A-Eintrag bindet und zeigt alle Domänen und Subdomänen auf eine einzige IP-Adresse, damit Webbrowser deine Website finden können.
1. Starten Sie Ihren bevorzugten Webbrowser und melden Sie sich bei Ihrem DNS-Steuertafel an.
2. Klicken Sie auf Eintrag hinzufügen, um mit dem Hinzufügen von A-Einträgen zu beginnen. Ihr Browser leitet Sie auf eine Seite weiter, auf der Sie DNS-Einstellungen für Ihre Domain und Subdomains konfigurieren können.

Konfigurieren Sie nun die DNS-Einstellungen wie folgt:
Wählen Sie im Feld Typ den Eintrag A.
Geben Sie @ im Feld Host ein und Ihre Server-IP im Feld Wert.
Wählen Sie Ihren gewünschten Wert im Feld TTL aus und klicken Sie dann auf die Schaltfläche Bestätigen, um die Einstellungen zu speichern.
Wiederholen Sie diesen Vorgang für andere Subdomains.

Die abschließende Seite DNS-Einstellungen sieht wie folgt aus.

Ihr DNS-Eintrag-Steuertafel kann je nach Funktionalität und Design variieren, aber die gleichen Prinzipien gelten für alle.
Einrichten von Webverzeichnissen für NGINX-Domain und Subdomain
Jetzt, da Sie A-Einträge für Ihre Domain und Subdomains hinzugefügt haben, ist es an der Zeit, ihre Webverzeichnisse einzurichten. NGINX wird mit einer Standard-Virtual-Host-Datei geliefert und ist so konfiguriert, dass es ein Webverzeichnis unter /usr/share/nginx/html bedient.
Sie werden für jede Domain ein separates Webverzeichnis innerhalb des NGINX-Standarddokumentenstamms (/var/www/html) erstellen.
1. Öffnen Sie zuerst Ihr Terminal und führen Sie die folgenden Befehle aus, um Webverzeichnisse für alle Domänen und Subdomänen zu erstellen. Dadurch werden Dateien für jede Website getrennt, organisiert und isoliert.
2. Führen Sie anschließend den Befehl chown
aus, um rekursiv (-R
) den Besitz jedes Verzeichnisses, das Sie im ersten Schritt erstellt haben, auf den Benutzer und die Gruppe www-data
zu ändern. Sie ändern den Besitz jedes Verzeichnisses auf den Benutzer und die Gruppe www-data
, da NGINX als Benutzer www-data
läuft.
3. Erstellen Sie eine Datei mit dem Namen index.html in Ihrem bevorzugten Code-Editor und kopieren Sie dann den Code unten in die Datei index.html. Speichern Sie die Datei im Hauptwebverzeichnis Ihrer Domänen (/var/www/html/awstutorial.net).
Der HTML-Code unten zeigt eine Meldung an, die besagt „Herzlichen Glückwunsch! Die awstutorial.net-Website funktioniert!“, wenn die Datei index.html in einem Webbrowser geöffnet wird.
4. Erstellen Sie schließlich die gleiche index.html in den Verzeichnissen /var/www/html/web1.awstutorial.net und /var/www/html/web2.awstutorial.net. Ersetzen Sie jedoch awstutorial.net
durch web1.awstutorial.net
und web2.awstutorial.net
im Code jeder index.html entsprechend.
Einrichten des virtuellen Hosts für die NGINX-Domäne und Subdomänen
Sie haben bereits eine index.html-Seite für Ihre Domäne und Subdomänen, die über einen NGINX-Webserver bereitgestellt werden soll. Der nächste Schritt besteht darin, für jede Domäne eine NGINX-Virtual-Host-Konfigurationsdatei zu erstellen, um die HTML-Seiten bereitzustellen.
1. Erstellen Sie eine NGINX-Virtual-Host-Konfigurationsdatei mit dem Namen awstutorial.net in Ihrem bevorzugten Code-Editor und kopieren Sie dann den unten stehenden Code in diese Datei. Speichern Sie die Datei im Verzeichnis /etc/nginx/sites-available/.
Der unten stehende Code steuert das Verhalten Ihres Servers, wie z.B. den Servernamen und die Index (Start-)Seite, wenn ein Benutzer versucht, auf Ihre Domain zuzugreifen.
2. Führen Sie anschließend den folgenden nginx
-Befehl aus, um die NGINX-Konfigurationsdatei auf Syntaxfehler zu überprüfen (-t
).
Wenn in der NGINX-Konfigurationsdatei kein Syntaxfehler gefunden wird, erhalten Sie folgende Ausgabe.

3. Führen Sie als Nächstes den folgenden Befehl aus, um einen symbolischen Link (`ln -s`) vom Verzeichnis /etc/nginx/sites-available zum Verzeichnis /etc/nginx/sites-enabled/ zu erstellen. Dieser Befehl aktiviert die Konfigurationsdatei für den virtuellen Host awstutorial.net.
Das Format sites-available und sites-enabled ist standardmäßig in einer NGINX-Installation unter Ubuntu, aber andere Distributionen können einen anderen Standard verwenden.
4. Wiederholen Sie die Schritte eins bis drei, um NGINX-Konfigurationsdateien für virtuelle Hosts mit den Namen web1.awstutorial.net und web2.awstutorial.net zu erstellen.
Ändern Sie die folgenden Zeilen in jeder NGINX-Konfigurationsdatei für virtuelle Hosts:
- Ersetzen Sie die Zeile
root /var/www/html/awstutorial.net
durch das Stammverzeichnis jedes Subdomains (root /var/www/html/web1.awstutorial.net
undroot /var/www/html/web2.awstutorial.net
). - Ersetzen Sie die Zeile
server_name awstutorial.net
durch den Namen jeder Subdomain (server_name web1.awstutorial.net
undserver_name web2.awstutorial.net
).
5. Führen Sie nun die folgenden `sudo ln`-Befehle aus, wie Sie es in Schritt drei getan haben, um die Konfigurationsdateien für virtuelle Hosts zu aktivieren.
6. Führen Sie den folgenden systemctl
-Befehl aus, um den NGINX-Dienst neu zu starten (restart nginx
), um alle Konfigurationsänderungen anzuwenden.
7. Navigieren Sie schließlich zu den URLs der Domain und Subdomains in Ihrem Browser, um zu überprüfen, ob die Websites ordnungsgemäß funktionieren.
Wenn die Domain und die Subdomains geladen werden, sehen Sie eine Meldung wie die unten stehende.

Einrichten von HTTPS auf NGINX-Domain und Subdomain
Sie haben erfolgreich eine NGINX-Domain und Subdomains auf dem HTTP-Protokoll eingerichtet und getestet, was großartig ist. Aber Sie müssen die Verbindung Ihrer Domain und Subdomains sichern, indem Sie HTTPS aktivieren. Wie? Mit einem Zertifikat, das Sie von einer Zertifizierungsstelle wie Let’s Encrypt SSL erhalten.
1. Führen Sie zuerst den Befehl unten aus, um das Softwarepaket Certbot zu installieren (apt-get install certbot
). Certbot ermöglicht es Ihnen, ein SSL-Zertifikat für Ihre Domain und Subdomains herunterzuladen.
2. Führen Sie den folgenden Befehl aus, um ein SSL-Zertifikat (certonly
) für Ihre Domain (-d awstutorial.net
) herunterzuladen. Beachten Sie, dass Sie den Nutzungsbedingungen (--agree-tos
) mit Ihrer E-Mail-Adresse (--email
) zustimmen.
Ersetzen Sie die E-Mail-Adresse durch Ihre eigene.
3. Geben Sie ‚1‘ ein, um das NGINX Web Server Plugin (nginx) zur Authentifizierung mit dem ACME CA auszuwählen, wie unten gezeigt.

Nach Auswahl des NGINX Web Server Plugins sehen Sie den Fortschritt des Downloads des SSL-Zertifikats für Ihre Domain (awstutorial.net).
Standardmäßig werden die SSL-Zertifikate von Let’s Encrypt im Verzeichnis /etc/letsencrypt/live/ gespeichert.

4. Führen Sie nun jeden der folgenden Befehle aus, wie Sie es im zweiten Schritt getan haben, um SSL-Zertifikate für die verbleibenden Subdomains (web1.awstutorial.net
und web2.awstutorial.net
) herunterzuladen.
5. Führen Sie abschließend den Befehl ls
aus, um alle SSL-Zertifikate im Verzeichnis /etc/letsencrypt/live/ aufzulisten, die (*
) die awstutorial.net
in ihrem Namen enthalten. Dadurch können Sie überprüfen, ob die SSL-Zertifikate vorhanden sind.
Unten sehen Sie die SSL-Zertifikate für Ihre Domain und Subdomains.

Konfigurieren des NGINX Virtual Hosts zur Verwendung von SSL-Zertifikaten
An diesem Punkt haben Sie bereits SSL-Zertifikate zur Verfügung. Aber wie verwenden Sie sie, um Ihre Domain und Subdomains zu sichern? Sie definieren den Pfad der Zertifikate im server
-Block jeder NGINX-Virtual-Host-Konfigurationsdatei.
1. Öffnen Sie die NGINX-Virtual-Host-Konfigurationsdatei von awstutorial.net, die sich im Verzeichnis /etc/nginx/sites-available/
in Ihrem bevorzugten Code-Editor befindet.
2. Ersetzen Sie den Inhalt der Datei durch den untenstehenden Code, in dem Sie den Pfad Ihres Domain-SSL-Zertifikats und das SSL-Protokoll definieren (unter Pfad des SSL-Zertifikats
).
3. Wiederholen Sie den gleichen Prozess (Schritte eins bis zwei) für die verbleibenden Konfigurationsdateien für virtuelle Hosts (web1.awstutorial.net und web2.awstutorial.net). Stellen Sie jedoch sicher, dass Sie den Pfad des SSL-Zertifikats durch den Pfad des Zertifikats Ihres Subdomains ersetzen (unter Pfad des SSL-Zertifikats
).
4. Führen Sie nun das systemctl
-Befehl unten erneut aus, um den NGINX-Dienst neu zu starten und die Konfigurationsänderungen anzuwenden.
5. Navigieren Sie abschließend mit Ihrem Webbrowser zu den URLs Ihrer Domain und Subdomain. Verwenden Sie diesmal jedoch anstelle des HTTP-Protokolls HTTPS, um zu überprüfen, ob sie funktionieren.
Unten sehen Sie ein Vorhängeschlosssymbol in der Adressleiste, das darauf hinweist, dass die Website mit Ihrem SSL-Zertifikat gesichert ist.

Fazit
In diesem Tutorial haben Sie gelernt, wie Sie einen NGINX-Subdomain oder mehrere Domains konfigurieren, indem Sie eine Konfigurationsdatei für virtuelle Hosts erstellen. Sie haben auch darüber gesprochen, wie Sie Ihre Domains mit einem SSL-Zertifikat sichern, das Sie ebenfalls in der Konfigurationsdatei für virtuelle Hosts definieren.
Warum verwenden Sie dieses Setup nicht in einer Produktionsumgebung, beispielsweise um mehrere Apps auf einem einzelnen Server zu hosten und kostengünstiges Webhosting anzubieten?