Reverse Proxy mit Nginx Proxy Manager: HTTPS fuer alle Services
Warum ein Reverse Proxy unverzichtbar ist
Wer mehrere Services auf einer Self-Hosted Plattform betreibt, steht vor einem Problem: Jeder Dienst laeuft auf einem eigenen Port. Nutzer sollen aber nicht domain:8080 oder domain:3000 aufrufen muessen. Ein Reverse Proxy nimmt alle Anfragen auf Port 443 entgegen und leitet sie anhand des Hostnamens an den richtigen Backend-Service weiter. Gleichzeitig terminiert er TLS — damit ist HTTPS fuer jeden Service gewaehrleistet, ohne dass die einzelnen Container selbst Zertifikate verwalten muessen.
Nginx Proxy Manager: Die pragmatische Loesung
Nginx Proxy Manager (NPM) kombiniert einen vollwertigen Nginx-Reverse-Proxy mit einer Web-Oberflaeche zur Verwaltung. Proxy Hosts, SSL-Zertifikate und Access Lists lassen sich per Klick konfigurieren. Unter der Haube laeuft ein regulaerer Nginx — wer Custom Configs braucht, kann diese pro Host hinterlegen. Wir setzen NPM auf einer dedizierten VM ein, getrennt von den Applikations-Containern. Das haelt die Angriffsoberflaeche klein.
Let's Encrypt Integration
NPM bringt eine native Let's Encrypt Integration mit. Beim Anlegen eines Proxy Hosts aktiviert man SSL, waehlt "Request a new SSL Certificate" und NPM erledigt den Rest: ACME Challenge, Zertifikatsausstellung, automatische Verlaengerung. Fuer Wildcard-Zertifikate wird DNS Challenge unterstuetzt — das ist relevant, wenn Services nicht direkt aus dem Internet erreichbar sind. Wir nutzen standardmaessig einzelne Zertifikate pro Subdomain, da jeder Service seinen eigenen Proxy Host bekommt.
Proxy Hosts konfigurieren
Ein Proxy Host besteht aus drei Angaben: Der oeffentliche Hostname (z.B. ai.sgit.space), das Backend-Ziel (IP oder Hostname plus Port des Containers) und die SSL-Einstellung. Wichtig: "Force SSL" und "HTTP/2 Support" sollten immer aktiviert sein. Unter "Advanced" lassen sich Header wie X-Real-IP und X-Forwarded-Proto setzen, falls der Backend-Service diese benoetigt. Websocket-Support ist ein Haken — relevant fuer Chat-Dienste oder Matrix.
Netzwerk-Design
NPM muss die Backend-Container erreichen koennen. Zwei Ansaetze funktionieren: Entweder NPM laeuft im selben Docker-Netzwerk wie die Services, oder NPM steht auf einer separaten Maschine und erreicht die Backends ueber die LAN-IP. Wir fahren den zweiten Ansatz. Die Container binden ihre Ports ausschliesslich auf die lokale LAN-Adresse — nicht auf 0.0.0.0. So ist kein Service direkt aus dem Internet erreichbar, nur ueber den Reverse Proxy.
Sicherheit und Haertung
Ein Reverse Proxy ist immer auch ein Single Point of Entry. Deshalb: TLS 1.2 als Minimum, schwache Cipher Suites deaktivieren, HTTP Strict Transport Security (HSTS) aktivieren. NPM bietet Access Lists fuer IP-basierte Zugriffskontrolle — nuetzlich fuer Admin-Panels, die nur aus dem LAN erreichbar sein sollen. Zusaetzlich empfiehlt sich Rate Limiting und Fail2Ban auf der NPM-Maschine, um Brute-Force-Angriffe auf Login-Seiten zu bremsen.
Fazit
Nginx Proxy Manager loest ein zentrales Problem jeder Self-Hosted Plattform: Sauberes Routing und automatisches HTTPS fuer alle Services, ohne dass jeder Container eigene Zertifikate verwalten muss. Die Einrichtung dauert Minuten, die Wartung beschraenkt sich auf gelegentliche Updates. Fuer uns ist NPM seit dem ersten Tag im Einsatz — zuverlaessig und ohne Ueberraschungen.