Der Nginx Proxy Manager ist eine Open-Source-Software, die auf dem Nginx-Webserver basiert. Neben Apache ist Nginx einer der am häufigsten verwendeten Webserver für alle möglichen Webanwendungen. Wir installieren in dieser Installationsanleitung den Nginx Proxy Manager in einem Docker-Container.
Nach erfolgreicher Installation können Konfigurationen und Verwaltungen über die Weboberfläche (Dashboard) vorgenommen werden. Die grafische Benutzeroberfläche erlaubt mit wenigen Mausklicks die Installation von kostenlosen Let’s Encrypt Zertifikate und die Einrichtung von Reverse-Proxys.
Inhaltsverzeichnis: Nginx Proxy Manager Installationsanleitung
Was ist ein Reverse-Proxy und wie funktioniert dieser?
Ein Reverse-Proxy ist ein Verbindungsglied zwischen Clients und einem bzw. mehreren Webservern. Der Reverse-Proxy nimmt Anfragen von Clients entgegen und sendet diese anschließend an einen bestimmten Server weiter. Dabei gibt der Reverse-Proxy auch eine Antwort des Servers an den Client selbst zurück.
Dieses Szenario hat den Vorteil, dass nun mehrere Webseiten auf einem Webserver über die Ports: 80 und 443 erreicht werden können. Da diese bestimmten Web-Ports für HTTP und HTTPS in der Regel nur einmal an eine interne IP-Adresse zugeordnet werden kann.
Es ergeben sich jedoch noch mehr Vorteile und tolle Funktionen mit einem installierten Nginx Proxy Manager (Überblick)
- Lastenausgleich: Anfragen von Clients können mit dem Reverse-Proxy auf mehrere Webserver verteilt werden. Das ist besonders dann vom Vorteil, wenn die Webseite sehr viele Besucher zur selben Zeit hat. Diese finden sehr häufig Anwendung im E-Commerce-Sektor, z.B. um den Traffic von Onlineshops zu bewältigen. Ohne diese Möglichkeit würde am Black-Friday so ziemlich jeder große Webshop seinen Service einstellen (Überlastung).
- Hohe Sicherheit: Da Server nicht selbst die Anfrage übernehmen, sind sie von außen nicht direkt erreichbar, was Angriffe auf die Server erschwert. Ein Reverse-Proxy hat demnach auch eine schützende Funktion.
- Webseiten Multiplikation: Da jede öffentliche IP-Adresse nur einmal die Ports (80 und 443) für Webanwendungen freigeben kann, bräuchte man für jede weitere Webseite nun eine eigene öffentlich erreichbare IP-Adresse. Das wäre finanzieller Unfug und würde schnell an die Grenzen des unmöglichen stoßen. Hier greift ein Reverse-Proxy ein und verteilt die Anfragen auf die gehosteten Webseiten völlig unabhängig davon, wie viele Webseiten auf den Webservern im Netzwerk bereitgestellt werden.
Hinweis: Damit du die Installation von Nginx Proxy Manager nach meiner Anleitung durchführen kannst, benötigst du einen installierten Docker-Server mit Docker-Compose. Falls du noch keinen Docker selbst installiert hast, solltest du erstmal mit dieser Anleitung beginnen und anschließend wieder zu dieser hier zurückkehren: Docker-Compose installieren
Nginx Proxy Manager unter Docker-Compose auf Linux installieren
Aktualisiere zu Beginn deine Paketquellen und implementiere mögliche Neuerungen und Updates der bereits installierten Applikationen auf deinem Server:
apt-get update && apt-get upgrade
Navigiere in das Home-Verzeichnis und erstelle einen Ordner für die Docker-Compose Konfigurationsdatei mit folgenden Befehlen:
cd /home
mkdir nginxproxymanager
cd nginxproxymanager
Erstelle jetzt die Docker-Compose Konfigurationsdatei:
touch docker-compose.yml
Öffne die neu erstellte Datei mit dem Nano-Editor und füge den folgenden Inhalt ein:
nano docker-compose.yml
Kopiere diesen Inhalt und füge ihn in die Datei ein:
version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
Speichere die Änderungen ab (STRG+S) und verlasse den Nano-Editor wieder (STRG+X).
Jetzt können wir den Docker-Container mit der Verwendung von diesem Befehl an den Start bringen:
docker-compose up -d
Das Admin-Interface von Nginx Proxy Manager über den Browser aufrufen
Sobald der Docker-Container läuft, kannst du das Admin-Interface nach erfolgreicher Installation über die IP-Adresse deines Servers und der Verwendung des Port: 81 über einen Browser im selben Netzwerk aufrufen.
Beispiel: http://192.168.1.120:81
Nach dem ersten Aufruf kannst du dich mit den vorkonfigurierten Nginx Proxy Manager Zugangsdaten, bestehend aus E-Mail und Passwort, an der grafischen Benutzeroberfläche anmelden (Default Admin-User):
E-Mail: admin@example.com
Passwort: changeme
Anschließend wirst du dazu aufgefordert, einen eigenen Admin-Account für deinen neu installierten Nginx Proxy Manager anzulegen. Jetzt kannst du damit anfangen diverse Konfigurationen für Proxy-Hosts, SSL-Zertifikate und vieles mehr vorzunehmen.
if anybody gets error „service must be mapping not a nontype“ try this content for the .yml file:
version: ‚3‘
services:
app:
image: ‚jc21/nginx-proxy-manager:latest‘
restart: unless-stopped
ports:
– ’80:80′
– ’81:81′
– ‚443:443‘
volumes:
– ./data:/data
– ./letsencrypt:/etc/letsencrypt
best regards