Nginx Proxy Manager Einrichtung: Webbasierter Reverse Proxy
Nginx Proxy Manager Docker-Installation, automatische SSL-Zertifikatserneuerung, Proxy-Host-Konfiguration, Zugriffslisten, Weiterleitungen, Streams und benutzerdefinierte Locations.
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
# 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:
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
- Proxy Hosts → Add Proxy Host
- Domain Names:
app.example.com - Scheme:
http - Forward Hostname / IP:
192.168.1.10 - Forward Port:
3000 - Block Common Exploits: Aktivieren
- Websockets Support: Für WebSocket-Anwendungen aktivieren
SSL-Zertifikat hinzufügen
- SSL Certificate: Request a new SSL Certificate
- Force SSL: Aktivieren
- HTTP/2 Support: Aktivieren
- HSTS Enabled: Aktivieren
- Save
Proxy mit Docker-Netzwerk
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
- Access Lists → Add Access List
- 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
- Redirection Hosts → Add Redirection Host
- Domain Names:
alt.example.com - Forward Domain:
neu.example.com - HTTP Code:
301 - Preserve Path: Aktivieren
Stream Host (TCP/UDP Proxy)
- Streams → Add Stream
- Incoming Port:
25565 - Forward Host:
192.168.1.50 - Forward Port:
25565 - TCP Forwarding: Aktivieren
Benutzerdefinierte Nginx-Konfiguration
Advanced-Tab
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
- SSL Certificates → Add SSL Certificate
- Domain Names:
*.example.com - Use a DNS Challenge: Aktivieren
- DNS Provider: Cloudflare, DigitalOcean usw.
- Credentials: API-Token eingeben
Sicherung und Wiederherstellung
# 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
docker compose pull
docker compose up -d
docker image prune -f
Sicherheitsempfehlungen
# 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.
Verwandte Artikel
Server-Überwachungstools: Grafana, Prometheus und Netdata
Prometheus + Grafana Stack-Einrichtung, Netdata, node_exporter, Alarmregeln, Dashboard-Erstellung und Server-Metrik-Überwachung.
Proxy-Server-Einrichtung: Squid und HAProxy Anleitung
Squid Forward Proxy, HAProxy Load Balancer, SSL-Terminierung, ACL-Regeln, Caching, Health Checks und Hochverfügbarkeit.
CrowdSec Einrichtung: Community-gestützte Sicherheits-Engine
CrowdSec-Installation, Bouncer-Konfiguration, Angriffserkennung, IP-Blockierung, Dashboard, Sammlungs- und Szenario-Verwaltung.