Das Verwalten von Proxies und Virtuellen Hosts (VHosts) über NGINX-Konfigurationsdateien kann mühsam werden, wenn die Anzahl der virtuellen Hosts und Webdienste zunimmt. Wie können Sie den Prozess vereinfachen? Mit dem NGINX Proxy Manager (NPM).
Lesen Sie weiter und lernen Sie, virtuelle Hosts mit der NGINX Proxy Manager-Webkonsole zu erstellen, zu verwalten und abzusichern.
Voraussetzungen
In diesem Tutorial wird eine praktische Demonstration durchgeführt. Wenn Sie mitmachen möchten, stellen Sie sicher, dass Sie Folgendes haben:
- A Linux machine to host NGINX Proxy Manager and the proxied webserver- This tutorial uses Fedora 35.
- Docker, um die Container auszuführen – In diesem Tutorial wird Docker Version 20.10.12 verwendet. Installieren Sie Docker mit diesem Tutorial, falls Sie noch keine der Alternativen installiert haben.
- Docker Compose, um den Proxy Manager und seine Anforderungen automatisch einzurichten. In diesem Tutorial wird Version 1.29.2 verwendet. Installieren Sie Docker Compose, um mit dem Rest des Artikels fortzufahren.
- Die Domain-Name fungiert als virtueller Host-Endpunkt. In diesem Tutorial wird ein privater Domain-Name, testweb.com, verwendet. Stellen Sie sicher, dass der Domain-Name auf die Linux-Host-Maschine zeigt. Sie können auch einen öffentlich registrierten Domain-Namen verwenden.
- Sie benötigen ein SSL-Zertifikat und einen Zertifikatsschlüssel, um virtuelle Hosts abzusichern. Erstellen Sie zuerst ein Zertifikat und die zugehörige Schlüsseldatei, wenn Sie noch keines haben.
Einrichten des NGINX Proxy Managers
Der NGINX Proxy Manager ist kein Paket, das Sie auf Ihrem Betriebssystem installieren. Stattdessen ist NPM eine App, die Sie in Docker bereitstellen – daher sind Docker und Docker Compose die primären Anforderungen.
Befolgen Sie die untenstehenden Schritte, um mit dem Einrichten Ihres NGINX Proxy Managers zu beginnen.
1. Melden Sie sich über SSH oder die Desktop-Umgebung, falls vorhanden, auf Ihrem Linux-Server an.
2. Erstellen und öffnen Sie eine YAML-Datei namens docker-compose.yml mit Ihrem bevorzugten Texteditor, hier wird vi verwendet.
3. Kopieren Sie den folgenden Code in den Editor. Dieser Code enthält die Anweisungen zum Herunterladen und Einrichten des neuesten nginx-proxy-manager-Images. Speichern und schließen Sie die Datei, um zur Befehlszeile zurückzukehren.
4. Führen Sie docker-compose aus, um den Container im Hintergrund gemäß den angegebenen Anweisungen hochzufahren.

5. Führen Sie den folgenden Befehl aus, um sicherzustellen, dass der Container läuft.
Sie sollten einen laufenden Prozess sehen, der dem Proxy-Manager-Container entspricht, wie im untenstehenden Screenshot, wenn alles in Ordnung ist.

Zugriff auf das Administrations-Panel
Der NGINX Proxy Manager sollte jetzt ausgeführt werden. Sie können nun auf das NPM-Admin-Panel zugreifen, um die erste Admin-Benutzerkonfiguration durchzuführen.
1. Öffnen Sie Ihr Browserfenster und navigieren Sie zu http://
2. Melden Sie sich mit den standardmäßigen Anmeldeinformationen an: E-Mail-Adresse [email protected] und Passwort changeme.

3. Ändern Sie das Standardbenutzerkonto nach Belieben. Dieses Tutorial behält den vollständigen Namen und Spitznamen bei und ändert nur die E-Mail-Adresse in [email protected]. Klicken Sie auf Speichern, um die Benutzerdetails zu speichern.

4. Geben Sie ein neues Passwort für den Benutzer im Bereich „Passwort ändern“ wie unten gezeigt ein. Geben Sie ein Passwort mit acht oder mehr Zeichen ein und klicken Sie auf Speichern.

Sie sollten die von Ihnen vorgenommenen Änderungen am Benutzerkonto unten sehen.

Bereitstellen des Webservers
Jetzt, da Sie die erste Einrichtung durchgeführt haben, ist Ihr nächster Schritt das Starten eines Webservers für Ihren virtuellen Host. Befolgen Sie die Schritte in diesem Abschnitt, um schnell einen Apache-Webservice-Container mithilfe von Docker Compose zu starten.
Öffnen Sie die Datei docker-compose.yml, die Sie zuvor in Ihrem Texteditor erstellt haben. Fügen Sie den folgenden Codeausschnitt am Ende der Datei docker-compose.yml an
Der Vorteil der Verwendung derselben Datei besteht darin, dass Sie das vorhandene Container-Netzwerk ändern, indem Sie einen Container auf Basis von httpd unter dem Namen app2 registrieren, anstatt es in einem separaten Netzwerk zu haben.
Der Inhalt der Datei sollte wie auf dem Screenshot unten aussehen. Speichern Sie die Datei und beenden Sie den Editor.

Führen Sie docker-compose
aus, um den Container im Hintergrund zu starten (-d
).
Sie sollten eine ähnliche Rückmeldung wie auf dem Screenshot unten erhalten, die die Erstellung des zweiten Containers bestätigt.

Erstellen eines neuen virtuellen Hosts
Sie haben jetzt einen laufenden Webdienst. Dieser Abschnitt soll den Zugriff auf den Webserver über die veröffentlichten Ports des NGINX Proxy Managers ermöglichen.
1. Melden Sie sich im Admin-Panel von NGINX Proxy Manager an.
2. Klicken Sie auf Hosts —> Proxy-Hosts.

3. Klicken Sie auf „Proxy-Host hinzufügen“, um die Erstellung eines virtuellen Hosts für den Webserver zu starten.

4. Füllen Sie das Formular Neuer Proxy-Host mit den folgenden Details aus, um den virtuellen Host einzurichten.
- Domainnamen: Die Domainnamen, unter denen Ihr Webserver erreichbar sein wird. In diesem Beispiel wird die Domain testweb.com verwendet.
- Schemata: Das Protokoll, das beim Zugriff auf den Webserver verwendet werden soll. Lassen Sie den Standardwert vorerst auf
http
.
- Vorwärts Hostname / IP: Der Hostname oder die IP-Adresse des Webservers. Da dieses Tutorial Docker Compose verwendet hat, um die Container einzurichten, ist es ausreichend,
app2
zu verwenden. Geben Sie den Namen ein, den Sie in der Datei docker-compose.yml angegeben haben.
- Vorwärts Port: Der Port, auf dem der Webserver auf Anfragen hört. In diesem Fall verwenden Sie Port
80
, welcher der standardmäßig freigegebene Port für Apache httpd-Container ist.
- Blockiere gängige Exploits: Als Pluspunkt können Proxies, die mit NPM eingerichtet wurden, gängige Exploits blockieren. Aktivieren Sie diese Option.
- Zugriffsliste: Vordefinierte Listen zur Steuerung des Zugriffs auf den Webserver hinter einem Proxy. Für dieses Tutorial lassen Sie die Wahl auf Öffentlich zugänglich, um sicherzustellen, dass Sie über den Proxy auf den Webserver zugreifen können.
Das Formular auf Ihrem Bildschirm sollte dem untenstehenden Screenshot entsprechen. Klicken Sie nach dem Ausfüllen des Formulars auf Speichern.

Sie haben jetzt einen Proxy-Host in der Liste.

5. Gehen Sie abschließend zu der URL des virtuellen Hosts in einem neuen Browser-Tab oder -Fenster. Für dieses Tutorial lautet die URL http://testweb.com. Wenn der virtuelle Host ordnungsgemäß funktioniert, sollten Sie die Standard-Startseite sehen.

Bereitstellung von SSL-Zertifikaten
Sie haben den Webserver bereitgestellt und bestätigt, dass er läuft. Zu diesem Zeitpunkt verfügt die Website jedoch noch nicht über ein SSL-Zertifikat. Während interne private Websites möglicherweise ohne SSL-Zertifikat in Ordnung sind, sollte dies bei der Bereitstellung öffentlicher Websites nicht der Fall sein.
Um sicherzustellen, dass Ihre Website-Verbindungen verschlüsselt sind, werden Sie als Nächstes ein SSL-Zertifikat auf Ihren virtuellen Host installieren. Keine Sorge; Sie werden dies über den NGINX Proxy Manager tun. Sie sollten jedoch bereits ein vorhandenes PEM-Format SSL-Zertifikat und einen Zertifikatsschlüssel haben.
1. Klicken Sie auf die Registerkarte SSL-Zertifikate im Admin-Panel des NGINX Proxy Manager.

2. Klicken Sie oben rechts auf Zertifikate hinzufügen —> Benutzerdefiniert.

Als Alternative zu einem benutzerdefinierten Zertifikat können Sie direkt und während des Fluges ein Let’s Encrypt Zertifikat anfordern, indem Sie Let’s Encrypt auswählen. Dies erfordert jedoch, dass Ihre Website und DNS-Eintrag öffentlich sind. Andernfalls schlägt der Zertifikatserwerb fehl.
3. Füllen Sie das Formular zum Hinzufügen eines benutzerdefinierten Zertifikats wie folgt aus
- Name: Ein benutzerfreundlicher Name für das Zertifikat im Admin-Panel. Dieses Tutorial verwendet den Namen Testweb Cert.

- Zertifikatsschlüssel: Dieser Schlüssel wird mit der Zertifikatsdatei geliefert, die Sie als Anforderung in diesem Tutorial generiert haben.
Klicken Sie auf Durchsuchen und navigieren Sie zur Schlüsseldatei.

Doppelklicken Sie auf die Schlüsseldatei. In diesem Tutorial lautet der Zertifikatsschlüssel mytesthttpd.key.

- Zertifikat: Die Zertifikatsdatei selbst, entweder im .crt- oder .pem-Format.
Klicken Sie auf Durchsuchen und navigieren Sie zu Ihrem Zertifikat in Ihrem Datei-Explorer.

Doppelklicken Sie auf die Zertifikatsdatei, um sie zu öffnen. In diesem Tutorial wird die Schlüsseldatei als mytesthttpd.pem bezeichnet.

4. Sobald Sie alle drei Felder ausgefüllt haben, sollte Ihr Formular wie im folgenden Screenshot aussehen. Klicken Sie auf Speichern, um das benutzerdefinierte Zertifikat zu übermitteln.
In diesem Tutorial wird kein Zwischenzertifikat verwendet. Ignorieren Sie dieses Feld vorerst.

5. Klicken Sie nun auf Hosts —> Proxy-Hosts.

6. Klicken Sie auf das Kebab-Menüsymbol und wählen Sie Bearbeiten. Beachten Sie, dass in diesem Stadium die SSL-Spalte nur „Nur HTTP“ anzeigt.

7. Wählen Sie im Fenster „Proxy-Host bearbeiten“ den SSL-Tab wie unten gezeigt aus. Wählen Sie aus dem Dropdown-Menü unter SSL-Zertifikat das von Ihnen bereitgestellte Zertifikat aus. In diesem Tutorial ist es Testweb Cert, wie im Screenshot unten.

8. Wählen Sie das zuvor hinzugefügte Zertifikat aus dem Dropdown-Menü unter SSL-Zertifikat aus. Wie unten zu sehen ist, ist der Zertifikatname „Testweb Cert“.

9. Aktivieren Sie alle verfügbaren erweiterten SSL-Optionen, wie im folgenden Screenshot zu sehen, und klicken Sie auf Speichern.
Die Option „Force SSL“ erzwingt oder aktualisiert alle Verbindungen auf HTTPS, auch wenn der Client ursprünglich versucht hat, auf die HTTP-URL zuzugreifen.

A word of warning with HSTS. As browsers will include the site on an internal inclusion list, your site will no longer work under non-SSL conditions. Therefore, make sure that you have everything set up the correct way first.
Sie werden feststellen, dass sich der Wert in der SSL-Spalte von „Nur HTTP“ auf „Benutzerdefiniert“ geändert hat.

10. Öffnen Sie abschließend einen Browser-Tab und navigieren Sie erneut zu Ihrer virtuellen Host-Domain. In diesem Tutorial ist es http://testweb.com. Die Verbindung sollte automatisch auf HTTPS aktualisiert werden.

Herzlichen Glückwunsch! Sie haben die Bereitstellung eines gesicherten virtuellen Hosts mit dem NGINX Proxy Manager abgeschlossen.
Hinzufügen von NGINX Proxy Manager-Benutzern
Wenn Sie mit einem Team arbeiten oder erwarten, dass jemand anderes die virtuellen Hosts in NPM verwaltet, müssen Sie Benutzerzugriff bereitstellen. In diesem Abschnitt erweitern Sie das NPM-Management, insbesondere in Teamumgebungen, indem Sie einen Benutzer erstellen und Rollen und Berechtigungen zuweisen.
1. Klicken Sie auf Benutzer auf der Startseite des Administrationsbereichs.

2. Klicken Sie in der rechten oberen Ecke der Karte Benutzer auf Benutzer hinzufügen.

3. Geben Sie den vollständigen Namen des Benutzers (Testbenutzer), den Spitznamen (testuser) und die E-Mail-Adresse ([email protected]) in die entsprechenden Felder ein und klicken Sie auf Speichern.
Dieser Benutzer, den Sie erstellen, wird kein vollständiger Administrator sein, daher aktivieren Sie nicht die Administratorrolle. Sie werden stattdessen benutzerdefinierte Berechtigungen zuweisen. Klicken Sie auf Speichern, um den neuen Benutzer hinzuzufügen.

4. Legen Sie die Berechtigungen fest, die Sie dem Benutzer geben möchten. Für dieses Tutorial wird der neue Benutzer folgende Berechtigungseinstellungen haben.
- Kann nur Elemente anzeigen, die vom Benutzer erstellt wurden.
- Kann Proxy-Hosts erstellen, bearbeiten und löschen.
- Kann Weiterleitungs-Hosts erstellen, bearbeiten und löschen.
- Kann 404-Hosts nicht sehen.
- Kann Streams nicht sehen.
- Kann Zugriffslisten anzeigen.
- Kann SSL-Zertifikate erstellen, bearbeiten und löschen.
Das Berechtigungsset sollte dem untenstehenden Screenshot ähnlich sehen. Klicken Sie auf Speichern, um das Hinzufügen des neuen Benutzers abzuschließen.

5. Klicken Sie nun auf das Kebab-Menü des neuen Benutzers und dann auf Als Benutzer anmelden. Dieser Schritt wechselt den aktuellen Benutzerkontext zu Testbenutzer.

6. Erkunden Sie das Admin-Panel aus der Perspektive eines neuen Benutzers. Gemäß den Berechtigungen dieses Benutzers sollten Sie weniger Registerkarten und Ressourcen sehen.

Schlussfolgerung
Herzlichen Glückwunsch zum Abschluss dieses Tutorials zum NGINX Proxy Manager. Sie haben gelernt, virtuelle Hosts zu verwalten und die Zusammenarbeit zu ermöglichen, indem Sie Benutzer über die GUI erstellen! Glauben Sie, dass Sie jemals wieder zur Verwaltung von NGINX-Virtual-Hosts durch manuelles Bearbeiten von Konfigurationsdateien zurückkehren werden?
Hier ist eine Idee, um Ihr Wissen weiter zu testen. Warum lesen Sie nicht weiter über Wie man NGINX-Subdomains oder mehrere Domains bedient . Aber anstatt den manuellen Konfigurationen zu folgen, wenden Sie das Gelernte an und implementieren und konfigurieren Sie die virtuellen Hosts mithilfe des NGNIX Proxy Managers.