Skip to main content

Nginx Proxy Manager

Nginx Proxy Manager (NPM) ist eine webbasierte Oberfläche zur Verwaltung von Reverse-Proxys mit Nginx. Damit kannst du Domains definieren, Traffic an interne Dienste weiterleiten und SSL-Zertifikate verwalten, ohne Konfigurationsdateien manuell bearbeiten zu müssen. Es eignet sich besonders gut für Homelabs und kleine selbst gehostete Umgebungen.

Persönliche Erfahrung

In der Praxis hat sich Nginx Proxy Manager als extrem zuverlässig erwiesen. Er läuft seit sehr langer Zeit auf einem kleinen, aber soliden Orbsmart Mini-PC, ohne dass er besondere Aufmerksamkeit benötigt. Das System wurde einmal eingerichtet und läuft seitdem problemlos. Es aktualisiert sich automatisch, startet wöchentlich neu und erstellt regelmäßige Backups via Restic und rclone (WebDAV) auf ein NAS. Diese Konfiguration zeigt, dass selbst bescheidene Hardware für eine stabile und wartungsarme Reverse-Proxy-Lösung völlig ausreicht.

Funktionen

  • Web-Oberfläche zur Reverse-Proxy-Konfiguration
  • Automatische Let’s Encrypt SSL-Zertifikate
  • HTTP → HTTPS Weiterleitung
  • Einfache Zugriffskontrolle
  • Mehrere Domains und Hosts
  • TCP/UDP Weiterleitung
  • Zertifikatsverwaltung

Installation mit Docker

Voraussetzungen:

  • Linux-System oder VM
  • Docker und Docker Compose installiert
  • Ports 80, 443 und 81 frei verfügbar

Ordner anlegen:

mkdir -p /opt/nginx-proxy-manager/data
mkdir -p /opt/nginx-proxy-manager/letsencrypt
cd /opt/nginx-proxy-manager

docker-compose.yml erstellen:

services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    container_name: npm
    restart: always
    ports:
      - '80:80'
      - '443:443'
      - '81:81'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

Starten:

docker compose up -d

Web-Oberfläche:

http://<server-ip>:81

Erster Login

Standard-Zugangsdaten:
E-Mail: admin@example.com
Passwort: changeme

Du wirst aufgefordert, eine neue E-Mail-Adresse und ein neues Passwort zu vergeben.

Proxy Host hinzufügen

  1. Web-Oberfläche öffnen
  2. Zu „Proxy Hosts“ gehen
  3. Neuen Host hinzufügen
  4. Domain, Ziel-IP und Port eingeben
  5. Bei Bedarf WebSockets aktivieren
  6. Speichern

SSL-Zertifikate

  1. Proxy Host bearbeiten
  2. Reiter „SSL“ auswählen
  3. Let’s Encrypt Zertifikat anfordern
  4. „Force SSL“ und „HTTP/2“ aktivieren

Die Zertifikate werden automatisch verlängert.

Update durchführen

cd /opt/nginx-proxy-manager
docker compose pull
docker compose up -d

Backup

Sichere folgende Ordner:

  • /opt/nginx-proxy-manager/data
  • /opt/nginx-proxy-manager/letsencrypt

Darin befinden sich die komplette Konfiguration und die Zertifikate.

Häufige Probleme

  • Port-Konflikte: Ports 80 und 443 müssen frei sein
  • Let’s Encrypt Fehler: DNS zeigt nicht auf den Server oder Ports sind nicht weitergeleitet
  • Admin-Oberfläche nicht erreichbar: Firewall blockiert oder Container läuft nicht