Zum Hauptinhalt springen
Zurück zur Kategorie

Nginx Proxy Manager Einrichtung: Webbasierter Reverse Proxy

Nginx Proxy Manager Docker-Installation, automatische SSL-Zertifikatserneuerung, Proxy-Host-Konfiguration, Zugriffslisten, Weiterleitungen, Streams und benutzerdefinierte Locations.

Lesezeit: 12 Min. Monitoring
nginx proxy managerreverse proxyssldockerweboberflächelet's encrypt

Inhaltsverzeichnis

Nginx Proxy Manager Einrichtung: Webbasierter Reverse Proxy

Nginx Proxy Manager (NPM) ist ein Open-Source-Tool, mit dem Sie Nginx Reverse Proxy über eine benutzerfreundliche Weboberfläche verwalten können. SSL-Zertifikatsverwaltung, Proxy-Host-Konfiguration und Zugriffskontrolle sind ohne Kommandozeile möglich.

Was ist Nginx Proxy Manager?

Wichtige Funktionen:

  • Weboberfläche: Einfach zu bedienendes Verwaltungspanel
  • Automatische SSL-Erneuerung: Kostenloses SSL mit Let's Encrypt
  • Proxy Hosts: Reverse-Proxy-Konfiguration
  • Redirection Hosts: URL-Weiterleitungen
  • Stream Hosts: TCP/UDP-Portweiterleitung
  • Access Lists: IP- und benutzerbasierte Zugriffskontrolle
  • Custom Locations: Benutzerdefinierte Nginx-Location-Blöcke

Docker-Installation

Docker Compose Konfiguration

hljs yaml
# docker-compose.yml
version: '3.8'
services:
  npm:
    image: 'jc21/nginx-proxy-manager:latest'
    container_name: nginx-proxy-manager
    restart: unless-stopped
    ports:
      - '80:80'
      - '443:443'
      - '81:81'
    volumes:
      - npm_data:/data
      - npm_letsencrypt:/etc/letsencrypt
    environment:
      - TZ=Europe/Berlin

volumes:
  npm_data:
  npm_letsencrypt:
hljs bash
docker compose up -d
docker ps | grep nginx-proxy-manager

Erste Anmeldung

http://SERVER_IP:81

Standard-Anmeldedaten:
Email:    admin@example.com
Passwort: changeme

Bei der ersten Anmeldung werden Sie aufgefordert, Ihr Passwort und Ihre E-Mail zu ändern.

Proxy Host hinzufügen

Grundlegender Proxy Host

  1. Proxy HostsAdd Proxy Host
  2. Domain Names: app.example.com
  3. Scheme: http
  4. Forward Hostname / IP: 192.168.1.10
  5. Forward Port: 3000
  6. Block Common Exploits: Aktivieren
  7. Websockets Support: Für WebSocket-Anwendungen aktivieren

SSL-Zertifikat hinzufügen

  1. SSL Certificate: Request a new SSL Certificate
  2. Force SSL: Aktivieren
  3. HTTP/2 Support: Aktivieren
  4. HSTS Enabled: Aktivieren
  5. Save

Proxy mit Docker-Netzwerk

hljs yaml
version: '3.8'
services:
  npm:
    image: 'jc21/nginx-proxy-manager:latest'
    container_name: nginx-proxy-manager
    restart: unless-stopped
    ports:
      - '80:80'
      - '443:443'
      - '81:81'
    volumes:
      - npm_data:/data
      - npm_letsencrypt:/etc/letsencrypt
    networks:
      - proxy_network

  webapp:
    image: your-webapp:latest
    container_name: webapp
    expose:
      - "3000"
    networks:
      - proxy_network

networks:
  proxy_network:
    driver: bridge

volumes:
  npm_data:
  npm_letsencrypt:

Zugriffslisten

IP-basierte Zugriffskontrolle

  1. Access ListsAdd Access List
  2. Name: Nur Admin

Im Access-Tab:

Allow: 192.168.1.0/24
Deny: all

HTTP Basic Authentication

Im Authorization-Tab:

Benutzername: admin
Passwort: StarkesPasswort123!

Redirection Host

  1. Redirection HostsAdd Redirection Host
  2. Domain Names: alt.example.com
  3. Forward Domain: neu.example.com
  4. HTTP Code: 301
  5. Preserve Path: Aktivieren

Stream Host (TCP/UDP Proxy)

  1. StreamsAdd Stream
  2. Incoming Port: 25565
  3. Forward Host: 192.168.1.50
  4. Forward Port: 25565
  5. TCP Forwarding: Aktivieren

Benutzerdefinierte Nginx-Konfiguration

Advanced-Tab

hljs nginx
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

client_max_body_size 100M;

proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

Wildcard-SSL-Zertifikat

  1. SSL CertificatesAdd SSL Certificate
  2. Domain Names: *.example.com
  3. Use a DNS Challenge: Aktivieren
  4. DNS Provider: Cloudflare, DigitalOcean usw.
  5. Credentials: API-Token eingeben

Sicherung und Wiederherstellung

hljs bash
# NPM-Daten sichern
docker exec nginx-proxy-manager tar -czf /tmp/npm-backup.tar.gz /data /etc/letsencrypt
docker cp nginx-proxy-manager:/tmp/npm-backup.tar.gz ./npm-backup-$(date +%Y%m%d).tar.gz

# Wiederherstellen
docker cp ./npm-backup.tar.gz nginx-proxy-manager:/tmp/
docker exec nginx-proxy-manager tar -xzf /tmp/npm-backup.tar.gz -C /
docker restart nginx-proxy-manager

Aktualisierung

hljs bash
docker compose pull
docker compose up -d
docker image prune -f

Sicherheitsempfehlungen

hljs bash
# Admin-Panel nur von bestimmten IPs zugänglich machen
ports:
  - '80:80'
  - '443:443'
  - '127.0.0.1:81:81'

# Zugriff über SSH-Tunnel
ssh -L 81:localhost:81 user@server-ip

Mit Nginx Proxy Manager auf Ihren REXE-Servern können Sie alle Webanwendungen zentral verwalten und SSL-Zertifikate automatisch erhalten und erneuern. Die Weboberfläche ermöglicht professionelles Reverse-Proxy-Setup ohne Nginx-Konfigurationsdateien.