In der Praxis kann dieselbe Software (Nginx, HAProxy, Traefik) beide Aufgaben erfüllen. Deshalb werden die beiden Begriffe häufig verwechselt. Konzeptionell lösen sie jedoch unterschiedliche Probleme: Ein Reverse Proxy ist ein Vermittler, ein Load Balancer ein Verteiler.
Konzeptioneller Unterschied
Jeder Load Balancer kann eine Art Reverse Proxy sein, aber nicht jeder Reverse Proxy ist ein Load Balancer. Ein Nginx vor einem einzelnen Server balanciert keine Last, erfüllt aber die Aufgabe eines Reverse Proxy.
Die Trennung von Layer 4 und Layer 7
Layer-7-Balancing liest den Inhalt: Es kann sagen, „/api"-Anfragen gehen an diesen Server, „/statik"-Anfragen an jenen. Layer 4 ist dagegen schneller, kennt den Inhalt aber nicht.
Algorithmen zur Lastverteilung
IP-Hash wird bei Anwendungen eingesetzt, die Session-Stickiness erfordern: Derselbe Nutzer landet immer auf demselben Server, sodass Session-Daten nicht geteilt werden müssen.
Typische Architektur
In realen Systemen arbeiten beide zusammen. Die Schichten sind wie folgt angeordnet:
| Schicht | Komponente | Aufgabe |
|---|---|---|
| 1 | DNS / Anycast | Leitet den Nutzer in die nächstgelegene Region |
| 2 | CDN | Liefert statische Inhalte vom Edge aus |
| 3 | Load Balancer (L4) | Verteilt den Traffic innerhalb der Region |
| 4 | Reverse Proxy (L7) | Terminiert TLS, wendet Routing-Regeln an |
| 5 | Applikationsserver | Erledigen die eigentliche Arbeit |
In dieser Architektur gibt es keinen Forward Proxy – denn er steht am anderen Ende der Kette, auf der Seite des Nutzers. Die Abgrenzung in unserem Beitrag zu Forward und Reverse Proxy .
Health Checks
Hier unterscheidet sich der Load Balancer am deutlichsten vom Reverse Proxy: Er überwacht laufend die Gesundheit der dahinterliegenden Server und nimmt fehlerhafte aus dem Pool.
Diese Logik ist exakt dieselbe wie bei der Verwaltung eines Proxy-Pools. In unserem Beitrag zum Pool haben wir das clientseitige Pendant desselben Musters beschrieben.
Warum ist das beim Datensammeln wichtig?
Der Load Balancer der Zielseite kann Ihre Anfragen auf verschiedene Server verteilen. Das kann zu inkonsistenten Ergebnissen führen:
- Unterschiedliche Versionen: Während eines gestaffelten Rollouts laufen auf manchen Servern womöglich bereits neue Versionen.
- Session-Verlust: Ohne Session-Stickiness werden Ihre Cookies auf einem anderen Server womöglich nicht erkannt.
- Schwankende Antwortzeiten: Zwischen den Servern können Leistungsunterschiede bestehen.
- A/B-Tests: Unterschiedliche Anfragen können unterschiedliche Varianten sehen.
Um diese Inkonsistenzen zu verringern, helfen Sticky Sessions und aufeinanderfolgende Anfragen über dieselbe IP.
Zusammenfassung
Ein Reverse Proxy ist ein Vermittler, der Anfragen entgegennimmt und weiterleitet; ein Load Balancer ist eine Komponente, die diese Anfragen auf mehrere Server verteilt und deren Gesundheit überwacht. Dieselbe Software kann beide Rollen übernehmen, weshalb die Begriffe durcheinandergeraten. Layer-4-Balancing ist schnell, aber inhaltsblind, Layer-7-Balancing inhaltsbewusst, aber kostenintensiver. Beim Datensammeln können diese Schichten des Ziels die verborgene Ursache inkonsistenter Ergebnisse und abreißender Sessions sein.