nginx Load Balancing: upstream, Methoden und Health Checks

nginx Load Balancing

nginx Load Balancer: upstream, Methoden, Gewichte, Health | We.Inc

Richte nginx als Load Balancer ein: der upstream-Block, Round Robin, least_conn, ip_hash und hash, Gewichte, max_fails und fail_timeout, Backups, plus ein Config-Generator.

Für Load Balancing mit nginx listest du deine App-Server in einem upstream-Block auf und richtest proxy_pass auf dessen Namen. Anfragen rotieren per Round Robin, solange du nicht least_conn, ip_hash, hash oder random hinzufügst. Jede server-Zeile kann weight, max_fails und fail_timeout für passive Health Checks sowie die Flags backup oder down tragen.

Load-Balancing-Methoden in nginx

Traffic auf mehrere Kopien einer App zu verteilen ist eine der ältesten Aufgaben von nginx, und das ganze Setup passt in ein Dutzend Zeilen. Der Generator unten schreibt den upstream-Block aus einer Serverliste, warnt vor Kombinationen, die nginx ablehnt, und zeigt bei Gewichten den Anteil jedes Servers an den Anfragen. Die Referenz danach behandelt jeden Server-Parameter mit seinem Standardwert.

Häufige Fragen

Hat Open-Source-nginx aktive Health Checks?

Nein. Die Direktive health_check gehört zum kommerziellen NGINX Plus. Open-Source-nginx setzt auf passive Checks: Schlägt eine Anfrage an einen Server innerhalb von fail_timeout max_fails-mal fehl, wird der Server für fail_timeout übersprungen und danach erneut mit echtem Traffic versucht.

Was sind die Standardwerte für max_fails und fail_timeout?

max_fails ist standardmäßig 1 und fail_timeout 10 Sekunden. Ein einziger fehlgeschlagener Versuch nimmt einen Server also für zehn Sekunden aus dem Spiel. Mit max_fails=0 schaltest du die Zählung für diesen Server ab.

Wie mache ich Sessions in nginx sticky?

Nutze ip_hash, um jede Client-Adresse auf einem Server zu halten, oder hash mit einer Cookie-Variable wie $cookie_session für feinere Kontrolle. Cookie-basierte sticky-Direktiven gibt es nur in der kommerziellen Edition.

Was bewirkt der Parameter weight?

Er ändert, wie viele Anfragen ein Server im Verhältnis zu den anderen bekommt. Mit den Gewichten 3, 1 und 1 erhält der erste Server bei Round Robin etwa drei von fünf Anfragen. Das Standardgewicht ist 1.

Kann nginx WebSocket-Verbindungen verteilen?

Ja. Richte proxy_pass auf den upstream und leite die Header Upgrade und Connection weiter. least_conn passt bei langlebigen Sockets besser als Round Robin, weil es zählt, wie viele Verbindungen jeder Server bereits hält.

Wohin die Teile gehören

Passive Health Checks Schritt für Schritt

server-Parameter und ihre Standardwerte

Parameter einer server-Zeile innerhalb von upstream

Vollständige Beispiele

Round Robin mit Reserve

Zwei primäre Server teilen sich die Last; der dritte antwortet nur, wenn beide ausfallen.

least_conn mit wiederverwendeten Verbindungen

keepalive hält inaktive Verbindungen zu den Backends vor; die zwei proxy-Zeilen sorgen dafür, dass das funktioniert.

Cache-Affinität nach URL

Jede URL landet immer wieder auf demselben Cache-Server; consistent hält die meisten Zuordnungen stabil, wenn ein Server hinzukommt oder wegfällt.

upstream-Name

Methode

Round Robin (Standard)

Hash-Schlüssel

Inaktive keepalive-Verbindungen (0 für keine)

Server

Adresse und Port

Gewicht

fail_timeout (s)

Anteil

Server {n} entfernen

Server hinzufügen

nginx lehnt backup-Server bei hash, ip_hash und random ab. Entferne das backup-Flag oder ändere die Methode.

Jeder primäre Server ist als down markiert, daher kann nichts Traffic empfangen.

Config

Kostenlos starten · Keine Kreditkarte nötig

Verwandt: Ratgeber

Produkt

Für wen

Funktionen

Ressourcen

Unternehmen

Sitemap