Upstreamservers en load balancing
Configureer upstreamblokken in Nginx om meerdere backendservers te beheren en binnenkomende aanvragen te verdelen.
Upstreamservers en load balancing is een gratis API-gateway en reverse proxy (Nginx + Spring Cloud Gateway)-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject API-gateway en reverse proxy (Nginx + Spring Cloud Gateway). Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus API-gateway en reverse proxy (Nginx + Spring Cloud Gateway) bevat in totaal 4 lessen.
Je applicaties schalen
Naarmate je webapplicatie groeit, is één server misschien niet voldoende om alle binnenkomende aanvragen te verwerken. Dit kan leiden tot trage responstijden of zelfs crashes.
Om dit te voorkomen, gebruiken we meerdere backendservers om de belasting te verdelen. Dit verbetert zowel de prestaties als de betrouwbaarheid.
Upstreamservers introduceren
Nginx kan fungeren als reverse proxy en aanvragen verdelen over een groep backendservers. Deze backendservers worden vaak upstreamservers genoemd.
- Schaalbaarheid: Verwerk meer verkeer door meer servers toe te voegen.
- Hoge beschikbaarheid: Als één server uitvalt, kunnen de andere nog steeds antwoorden.
- Load balancing: Verdeel aanvragen efficiënt over de servers.
Het blok `upstream`
In Nginx definieer je een groep backendservers met het blok upstream. Dit blok geeft je servergroep een naam, waarnaar je vervolgens kunt verwijzen in je location-blokken.
Je kunt het zien als een benoemde verzameling resources waarnaar Nginx aanvragen kan doorsturen.
Basisconfiguratie van upstream
Zo definieer je een eenvoudig upstream-blok met de naam my_backends en twee servers. Elke server-instructie geeft het adres (IP-adres of hostnaam) en de poort van een backendserver op.
upstream my_backends {
server 192.168.1.100:8080;
server 192.168.1.101:8080;
}Upstream verbinden met `location`
Als je eenmaal een upstream-blok hebt gedefinieerd, kun je dit gebruiken binnen een location-blok in je Nginx-serverconfiguratie. De instructie proxy_pass vertelt Nginx dat aanvragen naar de opgegeven upstreamgroep moeten worden doorgestuurd.
Let erop dat we http://my_backends gebruiken om naar onze gedefinieerde groep te verwijzen.
http {
upstream my_backends {
server 192.168.1.100:8080;
server 192.168.1.101:8080;
}
server {
listen 80;
location /app {
proxy_pass http://my_backends;
}
}
}Standaard load balancing: round-robin
Standaard gebruikt Nginx de load-balancingmethode round-robin. Dit betekent dat aanvragen volgens een roulerende, opeenvolgende volgorde over upstreamservers worden verdeeld.
- Aanvraag 1 gaat naar server A.
- Aanvraag 2 gaat naar server B.
- Aanvraag 3 gaat naar server A.
- ... enzovoort.
Dit is eenvoudig en effectief voor gelijkmatig verdeelde belasting.
Belasting aanpassen met `weight`
Wat doe je als sommige servers krachtiger zijn of meer verkeer moeten verwerken? Je kunt de parameter weight in de server-instructie gebruiken om verschillende prioriteiten toe te wijzen.
Een server met een hogere waarde voor weight ontvangt een evenredig groter deel van de aanvragen.
Voorbeeld van `weight` in Nginx
In dit voorbeeld heeft server 1 een weight van 3 en server 2 een weight van 1. Dit betekent dat server 1 drie keer zoveel aanvragen ontvangt als server 2.
Van elke 4 aanvragen gaan er 3 naar server 1 en 1 naar server 2.
upstream my_backends {
server 192.168.1.100:8080 weight=3;
server 192.168.1.101:8080 weight=1;
}Andere serverinstructies
Naast weight kunnen andere instructies het gedrag van servers nauwkeurig afstemmen:
max_fails=N: Het aantal mislukte pogingen voordat Nginx de server als niet beschikbaar beschouwt.fail_timeout=Xs: De periode waarin de server als niet beschikbaar wordt beschouwd namax_failspogingen.backup: Markeert een server als back-upserver, die alleen wordt gebruikt wanneer alle primaire servers niet beschikbaar zijn.down: Markeert een server als permanent niet beschikbaar.
Hiermee kan Nginx de serverstatus automatisch beheren.
Korte controle: upstream en load balancing
Bekijk het volgende fragment van een Nginx-configuratie:
upstream api_servers {
server backend1.example.com:8080 weight=2;
server backend2.example.com:8080;
}
server {
listen 80;
location /api {
proxy_pass http://api_servers;
}
}Als er 9 aanvragen binnenkomen op het /api-eindpunt, hoeveel aanvragen worden dan naar backend1.example.com:8080 gestuurd?
Samenvatting en volgende stappen
Je hebt geleerd hoe Nginx upstream-blokken gebruikt om meerdere backendservers te groeperen. Zo wordt load balancing mogelijk en wordt je applicatie veerkrachtiger.
upstream-blok: Definieert een benoemde servergroep.proxy_pass: Verbindt eenlocationmet eenupstream-groep.- Round-robin: De standaardmethode van Nginx voor load balancing.
weight-instructie: Past de verdeling van aanvragen over servers aan.
Vervolgens bekijken we hoe Nginx de prestaties kan verbeteren met proxybuffering en caching!
Leer API-gateway en reverse proxy (Nginx + Spring Cloud Gateway) met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “Upstreamservers en load balancing” gratis?
Ja — de volledige tekst van “Upstreamservers en load balancing” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus API-gateway en reverse proxy (Nginx + Spring Cloud Gateway) wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus API-gateway en reverse proxy (Nginx + Spring Cloud Gateway) bevat in totaal 4 lessen.
Wat leer ik in “Upstreamservers en load balancing”?
Configureer upstreamblokken in Nginx om meerdere backendservers te beheren en binnenkomende aanvragen te verdelen. Je oefent met API-gateway en reverse proxy (Nginx + Spring Cloud Gateway) door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met API-gateway en reverse proxy (Nginx + Spring Cloud Gateway) te beginnen?
Ervaring vooraf is niet nodig. API-gateway en reverse proxy (Nginx + Spring Cloud Gateway) op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “Upstreamservers en load balancing”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over API-gateway en reverse proxy (Nginx + Spring Cloud Gateway)?
Ja. Elke les over API-gateway en reverse proxy (Nginx + Spring Cloud Gateway) bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Een eenvoudige reverse proxy configureren
- Upstreamservers en load balancing
- Proxybuffering en caching
- Headers en client-IP doorsturen