In produktiven Container-Umgebungen ist ein hochverfügbarer Reverse Proxy entscheidend, um eingehenden Traffic zuverlässig an die jeweiligen Services zu verteilen. Nginx und Traefik sind bewährte Lösungen, die sich mit Docker Compose redundant betreiben lassen. In diesem Artikel lernen Sie praxisnah, wie man Reverse Proxy Instanzen hochverfügbar gestaltet, VIPs einsetzt, Healthchecks implementiert und Failover ohne Orchestrator realisiert.
1. Grundlagen des Reverse Proxy HA
Ein Reverse Proxy agiert als Vermittler zwischen Clients und Backend-Services. Für hohe Verfügbarkeit ist es notwendig, mehrere Proxy-Instanzen parallel zu betreiben, sodass ein Ausfall einer Instanz nicht zu einem Serviceunterbruch führt.
Wichtige Konzepte
- VIP (Virtual IP): Eine IP-Adresse, die Clients verwenden, unabhängig davon, welche Instanz aktuell aktiv ist.
- Master/Backup: Rollen innerhalb des HA-Setups, typischerweise durch Keepalived gesteuert.
- Healthchecks: Automatisches Erkennen von Proxy-Ausfällen.
- Failover: Automatische Umschaltung der VIP auf die Backup-Instanz.
2. Keepalived für Reverse Proxy HA
Keepalived ermöglicht die Zuweisung einer VIP an die aktive Proxy-Instanz und sorgt für automatische Failover. Dies ist besonders relevant, wenn Compose-Stacks ohne Swarm oder Kubernetes betrieben werden.
Beispielkonfiguration Nginx HA
vrrp_instance VI_NGINX {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass secret123
}
virtual_ipaddress {
10.0.0.100
}
}
Auf dem Backup-Host wird state BACKUP gesetzt und priority z. B. auf 90 reduziert.
3. Docker Compose Setup
Die Compose-Datei enthält identische Proxy-Services auf allen Hosts. VIPs werden auf Host-Ebene gebunden, während die Container über das interne Netzwerk kommunizieren.
Beispiel docker-compose.yml für Nginx HA
version: "3.8"
services:
nginx:
image: nginx:stable
container_name: nginx
networks:
- webnet
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx/conf:/etc/nginx/conf.d:ro
- ./nginx/certs:/etc/ssl/certs:ro
restart: unless-stopped
networks:
webnet:
driver: bridge
4. Healthchecks für Proxy-Instanzen
Healthchecks sichern, dass die VIP nur auf einem gesunden Proxy bleibt. Keepalived kann externe Skripte nutzen, um z. B. HTTP-Statuscodes zu prüfen.
Healthcheck-Script Beispiel
vrrp_script chk_nginx {
script "/usr/local/bin/check_nginx.sh"
interval 2
weight 2
}
vrrp_instance VI_NGINX {
...
track_script {
chk_nginx
}
}
Das Script check_nginx.sh prüft beispielsweise curl -f http://localhost/ und liefert einen Exit-Code, der den Status an Keepalived meldet.
5. Traefik HA
Traefik als dynamischer Reverse Proxy unterstützt ebenfalls HA. In Verbindung mit Keepalived oder VRRP kann die VIP für Traefik-Instanzen bereitgestellt werden.
Compose Beispiel Traefik HA
services:
traefik:
image: traefik:v2.10
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--entrypoints.web.address=:80"
ports:
- "80:80"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
- webnet
6. Failover Szenarien testen
Um sicherzustellen, dass die HA-Strategie funktioniert, sollten verschiedene Szenarien simuliert werden:
- Master-Proxy stoppen und VIP Umschaltung auf Backup prüfen.
- Healthcheck-Fehler simulieren und Failover beobachten.
- Netzwerkpartitionen und Split-Brain-Situationen testen.
7. Monitoring und Logging
Logs von Keepalived und dem Reverse Proxy sollten zentral gesammelt werden, um Failover-Ereignisse zu überwachen:
/var/log/syslog
/var/log/messages
nginx/access.log
nginx/error.log
Optional können Alerts über Slack, Prometheus oder ELK-Stack eingerichtet werden.
8. Best Practices
- Immer mindestens zwei Proxy-Instanzen für kritische Dienste.
- Healthchecks auf Anwendungsebene einrichten.
- Prioritäten konsistent definieren, Master/Backup testen.
- Monitoring und Logging implementieren.
- Für Multi-Service Setups separate VIPs verwenden.
- Failover und Split-Brain Szenarien regelmäßig testen.
9. Zusammenfassung
Mit Keepalived und VRRP können Nginx oder Traefik in Compose-Umgebungen redundant betrieben werden. Durch Healthchecks, Multi-VIP-Instanzen und konsequentes Monitoring lassen sich Ausfälle minimieren und die Verfügbarkeit für Clients maximieren. Dieses Setup eignet sich besonders für kleine Cluster, Homelabs oder produktive Umgebungen ohne Swarm/Kubernetes.
Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3
Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.
Meine Leistungen umfassen:
-
Professionelle Konfiguration von Routern und Switches
-
Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen
-
Erstellung von Topologien und Simulationen in Cisco Packet Tracer
-
Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG
-
Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible
-
Erstellung von Skripten für wiederkehrende Netzwerkaufgaben
-
Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege
-
Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting
Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.











