Nginx vs. Traefik: Welchen Reverse Proxy sollte ich nutzen?
Wer eine eigene Server-Infrastruktur betreibt, kommt früher oder später nicht am Thema Reverse Proxy vorbei. Die zwei beliebtesten Optionen in der Self-Hosting-Community sind Nginx und Traefik. Beide erledigen den Job — aber für sehr unterschiedliche Szenarien.
Was ist ein Reverse Proxy und warum brauche ich ihn?
Ein Reverse Proxy sitzt vor deinen Backend-Diensten und leitet eingehende HTTP(S)-Anfragen weiter. Er kümmert sich um:
- TLS-Terminierung (HTTPS mit Let's Encrypt)
- Load Balancing zwischen mehreren Instanzen
- Routing nach Domain oder Pfad
- Header-Manipulation und Sicherheits-Policies
Ohne Reverse Proxy musste jeder Dienst auf einem eigenen Port laufen. Mit Reverse Proxy kannst du z.B. api.meineapp.de und cms.meineapp.de beide auf Port 443 betreiben.
Nginx: Der bewährte Alleskönner
Nginx ist seit 2004 im Einsatz und gehört zur Kern-Infrastruktur des Internets. Er ist unglaublich performant, extrem stabil und durch seine weite Verbreitung bestens dokumentiert.
Stärken von Nginx
- Statische Dateien serviert Nginx nahezu ohne CPU-Last
- Millionen von Anfragen pro Sekunde auf günstiger Hardware
- Riesige Community — jede Konfigurationsfrage hat eine Stack Overflow-Antwort
- Mächtige Konfiguration mit Rewrite-Regeln, Caching, Rate Limiting
- Langzeit-Support und bekannte Stabilität
Schwächen von Nginx
- Manuelles Konfigurieren: Jeder Dienst braucht eine eigene .conf-Datei
- Kein dynamisches Service Discovery: Wenn sich Dienste ändern, muss Nginx neu geladen werden (
nginx -s reload) - Let's Encrypt: Braucht Certbot oder ähnliches als Extra-Tool
- Kubernetes: Kein nativer Support, braucht den Nginx-Ingress-Controller
Traefik: Der Cloud-Native Reverse Proxy
Traefik wurde 2016 speziell für dynamische Infrastrukturen entwickelt. Es erkennt automatisch, welche Container oder Services gerade laufen — ohne manuelle Konfiguration.
Stärken von Traefik
- Auto-Discovery: Traefik liest Docker-Labels oder Kubernetes-Annotations aus und konfiguriert sich selbst
- Let's Encrypt eingebaut: HTTPS-Zertifikate werden automatisch beantragt und erneuert
- Dashboard: Web-UI zeigt alle Routes und Services in Echtzeit
- Kubernetes-nativ: Der Traefik Ingress Controller ist eine der beliebtesten K8s-Optionen
- Middleware-System: Rate Limiting, Auth, Redirect — alles per Label oder YAML
Schwächen von Traefik
- Lernkurve: Das Konzept von Routers, Middlewares und Services ist am Anfang ungewohnt
- Performance: Bei extrem hoher Last (10k+ req/s) ist Nginx typischerweise schneller
- Statische Seiten: Für einfaches File-Serving ist Traefik Overkill
Direkter Vergleich: Wann was?
| Kriterium | Nginx | Traefik |
|---|---|---|
| Setup-Aufwand | Mittel (manuelle Config) | Niedrig (Auto-Discovery) |
| Docker-Integration | Manuell | Nativ per Labels |
| Kubernetes | Ingress Controller | Ingress Controller |
| Let's Encrypt | Via Certbot | Eingebaut |
| Performance | Sehr hoch | Hoch |
| Lernkurve | Flach | Moderat |
| Static File Serving | Exzellent | Nicht geeignet |
Meine Entscheidung in der Praxis
In meinem Kubernetes-Setup setze ich auf Traefik als Ingress Controller. Der Hauptgrund: Ich deploye regelmäßig neue Services, und Traefik erkennt sie automatisch über IngressRoute-Objekte. Kein manuelles Reload, keine separate Cert-Verwaltung.
Für einfache VMs oder reine Static-Site-Hosting-Setups würde ich Nginx wählen. Die Konfiguration ist überschaubar, und für einen Webserver mit wenigen Domains lohnt sich die Extra-Komplexität von Traefik nicht.
Fazit: Traefik gewinnt in dynamischen, Container-basierten Umgebungen. Nginx gewinnt bei Performance-kritischen oder simplen Setups. In einem modernen Kubernetes-Cluster ist Traefik meine klare Empfehlung.