Am Black Friday kommen tausend Kunden
Ein Online-Shop hat sonst hundert Besucher gleichzeitig. Am Black Friday sind es tausend. Ein einziger Server schafft das nicht.
Also stehen mehrere Server bereit. Doch die Kunden kennen nur eine Adresse. Wer verteilt dann die Anfragen? Das übernimmt ein Load Balancer.
Am Ende dieser Lektion
Notiz
Ich kann sagen, was ein Proxy, ein Reverse Proxy und ein Load Balancer tun.
Schlüsselwörter
| Begriff | Was er bedeutet |
|---|---|
| Proxy | eine Zwischenstation, die Anfragen im Auftrag anderer weiterleitet |
| Forward Proxy | ein Proxy, der für die Nutzer ins Internet geht |
| Reverse Proxy | ein Proxy, der vor Servern steht und für sie Anfragen annimmt |
| Load Balancer | ein Gerät oder Programm, das Anfragen auf mehrere Server verteilt |
| Health Check | eine regelmäßige Prüfung, ob ein Server noch antwortet |
| Round Robin | eine Verteilung reihum, einer nach dem anderen |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein Proxy steht dazwischen
Ein Proxy ist eine Zwischenstation. Er nimmt eine Anfrage an und gibt sie selbst weiter. Die Antwort kommt zuerst zum Proxy und dann zum Absender.
Es kommt darauf an, auf welcher Seite er steht. Ein Forward Proxy steht auf der Seite der Nutzer. Ein Reverse Proxy steht auf der Seite der Server.
Vergleich: zwei Arten von Proxy
| Forward Proxy | Reverse Proxy | |
|---|---|---|
| Steht bei | Den Nutzern, zum Beispiel einer Firma | Den Servern, zum Beispiel einem Shop |
| Wer weiß davon? | Die Nutzer sind darauf eingerichtet | Die Nutzer merken nichts |
| Typische Aufgabe | Zugriffe der Mitarbeitenden prüfen und protokollieren | Anfragen annehmen, die Verschlüsselung (TLS) beenden, weiterleiten |
| Schützt | Die Nutzer und ihr Netzwerk | Die Server dahinter |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein Load Balancer verteilt die Last
Ein Load Balancer ist meist ein Reverse Proxy mit einer besonderen Aufgabe. Er verteilt Anfragen auf mehrere gleiche Server.
Eine einfache Regel heißt Round Robin: reihum, einer nach dem anderen. Die erste Anfrage geht an Server A, die zweite an B, die dritte an C, die vierte wieder an A.
Ausprobieren: Anfragen reihum verteilen
# Ein Load Balancer verteilt zehn Anfragen reihum auf drei Server
for nummer in 1 2 3 4 5 6 7 8 9 10; do
rest=$((nummer % 3))
if [ $rest -eq 1 ]; then echo "Anfrage $nummer geht an server-a"; fi
if [ $rest -eq 2 ]; then echo "Anfrage $nummer geht an server-b"; fi
if [ $rest -eq 0 ]; then echo "Anfrage $nummer geht an server-c"; fi
done
# Ändern Sie die 3 in eine 2 und klicken Sie auf Ausführen.
Beispiel: sechs Anfragen auf drei Server
| Anfrage | Server |
|---|---|
| 1 | 10.0.0.11 (A) |
| 2 | 10.0.0.12 (B) |
| 3 | 10.0.0.13 (C) |
| 4 | 10.0.0.11 (A) |
| 5 | 10.0.0.12 (B) |
| 6 | 10.0.0.13 (C) |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein Health Check erkennt Ausfälle
Was geschieht, wenn Server B ausfällt? Ohne Prüfung schickt der Load Balancer weiter jede dritte Anfrage ins Leere.
Darum fragt er alle paar Sekunden jeden Server: „Bist du da?“ Das ist der Health Check. Antwortet ein Server nicht, bekommt er keine Anfragen mehr. Kommt er zurück, darf er wieder mitmachen.
Ein häufiger Irrtum
Warnung
Viele denken, ein Load Balancer mache jeden Ausfall unsichtbar. Das stimmt nur, wenn noch genug gesunde Server übrig sind. Fallen zwei von drei aus, muss der letzte alles tragen und kann ebenfalls umkippen.