Hälsokontroller och serverövervakning
Implementera hälsokontroller som automatiskt tar bort backendservrar som inte fungerar från lastbalanseringspoolen.
Hälsokontroller och serverövervakning är en gratis lektion i API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för API-gateway och reverse proxy (Nginx + Spring Cloud Gateway), och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) innehåller totalt 4 lektioner.
Håll servrarna friska
Föreställ er en fullsatt restaurang med flera kockar. Om en kock blir sjuk vill ni väl inte skicka beställningar till den personen?
Inom lastbalansering fungerar hälsokontroller på precis samma sätt. De övervakar kontinuerligt backendservrarna för att säkerställa att de är redo att hantera förfrågningar.
Varför hälsokontroller är viktiga
Utan hälsokontroller kan en lastbalanserare fortsätta skicka förfrågningar till en server som är nere, överbelastad eller inte svarar.
- Dålig användarupplevelse: Användarna får fel i stället för innehåll.
- Slöseri med resurser: Lastbalanseraren försöker ansluta till en återvändsgränd.
- Kaskadfel: Överbelastning kan spridas om förfrågningar inte omdirigeras.
Grunderna i Nginx hälsokontroller
Nginx tillhandahåller inbyggda direktiv i sitt upstream-block för att utföra passiva hälsokontroller. Dessa kontroller reagerar på misslyckade anslutningsförsök eller svar.
De två viktigaste direktiven är max_fails och fail_timeout.
`max_fails`: Misslyckade försök
Direktivet max_fails anger hur många misslyckade försök i följd som krävs innan Nginx betraktar en server som "ohälsosam".
- Standardvärde:
1(ett misslyckande markerar servern som ohälsosam). - `max_fails=0`: Inaktiverar hälsokontroller för den servern.
- Ett "misslyckande" kan vara ett anslutningsfel, en timeout eller specifika HTTP-statuskoder (till exempel 5xx) om detta har konfigurerats.
`fail_timeout`: Återhämtningstid
När en server har markerats som ohälsosam slutar Nginx att skicka förfrågningar till den under den tidsperiod som anges av fail_timeout.
- Standardvärde:
10s(10 sekunder). - När denna timeout har löpt ut skickar Nginx försiktigt en förfrågan till servern för att kontrollera om den har återhämtat sig.
- Detta förhindrar att en server som ligger nere överbelastas av nya försök.
Implementera hälsokontroller i Nginx
Vi ska se hur ni konfigurerar max_fails och fail_timeout i ett Nginx-upstream-block. Här definierar vi två backendservrar.
http {
upstream backend_servers {
server 192.168.1.100:8080 max_fails=3 fail_timeout=15s;
server 192.168.1.101:8080 max_fails=3 fail_timeout=15s;
}
server {
listen 80;
location / {
proxy_pass http://backend_servers;
}
}
}Nginx serverhantering
När en server når gränsen för max_fails inom perioden för fail_timeout tar Nginx tillfälligt bort den från lastbalanseringspoolen.
- Förfrågningar fördelas då mellan de återstående friska servrarna.
- När
fail_timeouthar löpt ut försöker Nginx skicka en enda förfrågan till den "ohälsosamma" servern. Om den lyckas markeras servern som frisk igen.
Övervaka serverhälsan
Även om Nginx grundläggande hälsokontroller är passiva kan ni se deras effekter i Nginx-loggarna.
Felloggar visar meddelanden när en server markeras som nere eller tillgänglig. För mer avancerad, aktiv övervakning och en instrumentpanel erbjuder Nginx Plus särskilda funktioner, men det ligger utanför grunderna i Nginx.
Tips för hälsokontroller
En korrekt konfiguration av hälsokontroller är avgörande för tillförlitliga system:
- Justera värdena: Anpassa
max_failsochfail_timeoutefter applikationens svarstider och återhämtningstid. - Backendens beredskap: Se till att backendapplikationerna har en särskild hälsoendpoint, till exempel
/health, som rapporterar om tjänsten verkligen är redo. - Kombinera med övervakning: Använd externa övervakningsverktyg för att få aviseringar när Nginx markerar servrar som nere.
Snabbtest om hälsokontroller
Ni har konfigurerat en Nginx-upstreamserver med max_fails=2 och fail_timeout=30s. Vad händer härnäst om servern misslyckas med tre förfrågningar i följd?
Sammanfattning av hälsokontroller
I den här lektionen har vi lärt oss om Nginx viktiga direktiv för hälsokontroller:
max_fails: Antalet misslyckade försök innan en server markeras som ohälsosam.fail_timeout: Den tidsperiod under vilken en ohälsosam server tas bort från lastbalanseringspoolen.- Dessa passiva kontroller är avgörande för att upprätthålla backendens tillförlitlighet och förbättra användarupplevelsen.
Lär dig API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”Hälsokontroller och serverövervakning” gratis?
Ja – hela texten till ”Hälsokontroller och serverövervakning” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i API-gateway och reverse proxy (Nginx + Spring Cloud Gateway), kan Ni uppgradera till CoddyKit PRO. Kursen i API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) innehåller totalt 4 lektioner.
Vad lär jag mig i ”Hälsokontroller och serverövervakning”?
Implementera hälsokontroller som automatiskt tar bort backendservrar som inte fungerar från lastbalanseringspoolen. Ni övar på API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig API-gateway och reverse proxy (Nginx + Spring Cloud Gateway)?
Du behöver inga förkunskaper. Utbildningen i API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”Hälsokontroller och serverövervakning”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här API-gateway och reverse proxy (Nginx + Spring Cloud Gateway)-lektionen?
Ja. Varje API-gateway och reverse proxy (Nginx + Spring Cloud Gateway)-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Algoritmer för lastbalansering
- Hälsokontroller och serverövervakning
- Sticky sessions och sessionspersistens
- Viktad lastbalansering och reservservrar