nginx load balancing: upstream, methoden en health checks

nginx load balancing

nginx load balancer: upstream, methoden, weights, health | We.Inc

Stel nginx in als load balancer: het upstream-blok, round robin, least_conn, ip_hash en hash, weights, max_fails en fail_timeout, backups, plus een configbouwer.

Om met nginx te load balancen, zet u uw app-servers in een upstream-blok en laat u proxy_pass naar de naam ervan wijzen. Verzoeken rouleren via round robin, tenzij u least_conn, ip_hash, hash of random toevoegt. Elke server-regel kan een weight, max_fails en fail_timeout voor passieve health checks hebben, en de flags backup of down.

Load balancing-methoden van nginx

Verkeer verdelen over meerdere kopieën van een app is een van de oudste taken van nginx, en de hele opzet past in een tiental regels. De bouwer hieronder schrijft het upstream-blok op basis van een lijst servers, waarschuwt voor combinaties die nginx weigert en toont het aandeel verzoeken per server als er weights gelden. Het naslagdeel daarna behandelt elke serverparameter met zijn standaardwaarde.

Veelgestelde vragen

Heeft open source nginx actieve health checks?

Nee. De directive health_check hoort bij het commerciële NGINX Plus. Open source nginx vertrouwt op passieve checks: als een verzoek naar een server max_fails keer mislukt binnen fail_timeout, wordt de server voor fail_timeout overgeslagen en daarna opnieuw geprobeerd met echt verkeer.

Wat zijn de standaardwaarden voor max_fails en fail_timeout?

max_fails is standaard 1 en fail_timeout 10 seconden. Eén mislukte poging haalt een server dus tien seconden uit roulatie. Met max_fails=0 zet u de telling voor die server uit.

Hoe maak ik sessies sticky in nginx?

Gebruik ip_hash om elk clientadres op één server te houden, of hash met een cookievariabele zoals $cookie_session voor fijnere controle. Sticky-directives op basis van cookies bestaan alleen in de commerciële editie.

Wat doet de parameter weight?

Hij verandert hoeveel verzoeken een server krijgt ten opzichte van de andere. Met weights 3, 1 en 1 krijgt de eerste server bij round robin ongeveer drie van elke vijf verzoeken. De standaard-weight is 1.

Kan nginx WebSocket-verbindingen load balancen?

Ja. Laat proxy_pass naar de upstream wijzen en stuur de headers Upgrade en Connection door. least_conn past beter bij langlevende sockets dan round robin, omdat het telt hoeveel verbindingen elke server al heeft.

Waar de onderdelen komen

Passieve health checks, stap voor stap

server-parameters en hun standaardwaarden

Parameters op een server-regel binnen upstream

Complete voorbeelden

Round robin met een reserve

Twee primaire servers delen de last; de derde antwoordt alleen als beide uitvallen.

least_conn met hergebruikte verbindingen

keepalive bewaart inactieve verbindingen met de backends; de twee proxy-regels laten dat werken.

Cache-affiniteit op URL

Elke URL komt steeds op dezelfde cacheserver terecht; consistent houdt de meeste koppelingen intact als er een server bijkomt of wegvalt.

Naam van de upstream

Methode

Round robin (standaard)

Hash-sleutel

Inactieve keepalive-verbindingen (0 voor geen)

Servers

Adres en poort

Weight

fail_timeout (s)

Aandeel

Server {n} verwijderen

Server toevoegen

nginx weigert backup-servers bij hash, ip_hash en random. Verwijder de backup-flag of kies een andere methode.

Elke primaire server is als down gemarkeerd, dus niets kan verkeer ontvangen.

Config

Gratis beginnen · Geen creditcard nodig

Gerelateerd: Gidsen

Product

Voor wie

Functies

Bronnen

Bedrijf

Sitemap