Ein verständlicher Name vor der Anwendung
Bei mehreren selbst betriebenen Anwendungen wird eine Liste aus Adressen und Portnummern schnell unübersichtlich. Nginx Proxy Manager setzt einen Reverse Proxy davor. Ein sprechender Name führt dann zum passenden internen Dienst; Zertifikate und Weiterleitungen werden über eine Oberfläche verwaltet.
In meinem Homelab ist das besonders bei Webanwendungen praktisch. Der Proxy nimmt die Anfrage entgegen und reicht sie an das festgelegte Ziel weiter. Er installiert damit weder die Zielanwendung noch ersetzt er deren Benutzerverwaltung.
Namensauflösung, Proxy und Ziel müssen zusammenpassen
Für einen funktionierenden Aufruf müssen drei Dinge stimmen: Der Name wird auf die richtige Adresse aufgelöst, der vorgesehene Proxy nimmt die Verbindung an und sein Ziel ist erreichbar. Eine grüne Anzeige für einen Proxy-Eintrag beweist nicht automatisch, dass jeder Client den richtigen Weg nimmt.
Meine Reihenfolge bei einer Störung ist deshalb überschaubar: Zuerst die Namensauflösung prüfen, dann Adresse und Port des angesprochenen Proxys und schließlich das Ziel mit seinem Protokoll. Erwartet die Anwendung HTTPS, muss die Weiterleitung dazu passen. Auch eigene Umleitungen der Zielanwendung können sonst Schleifen erzeugen.
HTTPS funktioniert auch für interne Dienste
Ein gültiges Zertifikat bedeutet nicht, dass eine Anwendung öffentlich erreichbar sein muss. In meinem Aufbau nutze ich HTTPS auch für einen internen Dienst. Der nötige Domainnachweis kann über DNS erfolgen, während der eigentliche Zugriff auf das vorgesehene Netz begrenzt bleibt.
Das Zertifikat bestätigt dabei den angesprochenen Namen und ermöglicht die verschlüsselte Verbindung zum Proxy. Ob anschließend auch der Weg vom Proxy zur Anwendung verschlüsselt ist, hängt von diesem getrennten Zielabschnitt ab. Bei wichtigen Diensten prüfe ich beide Verbindungen bewusst.
Eine Domain ist keine Sicherheitsgrenze
Einen Dienst unter einen neuen Namen zu legen schließt seinen bisherigen direkten Port nicht automatisch. Wer den Proxy als einzigen Zugang verwenden möchte, muss die übrigen Wege ebenfalls passend begrenzen. Für Anwendungen auf demselben Docker-Host kann ein gemeinsames, gezielt eingerichtetes Docker-Netz helfen, ohne deren Ports zusätzlich auf dem Host zu veröffentlichen.
Auch beim Zugang über Tailscale ist diese Unterscheidung wichtig. Eine Freigabe für eine Zieladresse und einen Port unterscheidet nicht automatisch zwischen mehreren Webnamen auf demselben Proxy. In meinem Aufbau gibt es deshalb für ausgewählte private Freigaben einen getrennten Proxy-Zugang. Die Anwendungen behalten zusätzlich ihre eigene Anmeldung.
Die Verwaltung bleibt ein eigener Zugang
Die Verwaltungsoberfläche des Nginx Proxy Managers ist besonders wichtig: Wer sie kontrolliert, kann Weiterleitungen und Zugänge verändern. In meiner Umgebung bleibt sie deshalb ein gesonderter interner Administrationsweg und wird nicht als weitere öffentliche Website angeboten.
Der normale Webzugriff auf eine Anwendung und der Zugang zur Proxy-Verwaltung sollten getrennt betrachtet werden. Zugriffsliste, Netzwerkfreigabe und Anmeldung haben jeweils eine eigene Aufgabe. Eine zusätzliche vorgeschaltete Anmeldung muss außerdem zu den verwendeten Apps und deren API-Zugriffen passen.
Konfiguration und Zertifikate erhalten
Beim Docker-Betrieb gehören die Konfiguration und die Zertifikatsablage in dauerhafte Einbindungen. Nutzt der Stack eine zusätzliche Datenbank, gehört auch deren konsistenter Stand zum Sicherungsplan. Diese Daten bestimmen, welche Dienste nach einer Neuerstellung wieder erreichbar sind.
Vor einem Update prüfe ich die Versionshinweise und den Rückweg. Danach teste ich wichtige Weiterleitungen mit echtem HTTPS-Aufruf und kontrolliere die Zertifikate. Ein laufender Proxy allein sagt wenig darüber aus, ob die dahinterliegenden Anwendungen korrekt antworten.
Mein Ergebnis
Nginx Proxy Manager macht den Zugriff auf eigene Webdienste für mich deutlich übersichtlicher. Den größten Nutzen bringt er zusammen mit einer klaren Entscheidung: Welche Anwendung bleibt intern, welche darf über einen privaten Fernzugang erreichbar sein und welche ist ausdrücklich öffentlich? Name, Verschlüsselung und Freigabe werden dabei jeweils gezielt eingerichtet.