API-gateway og reverse proxy (Nginx + Spring Cloud Gateway) · Lektion

Sundhedstjek og serverovervågning

Implementér sundhedstjek, så usunde backendservere automatisk fjernes fra load-balancing-puljen.

Lektion 2 af 411 trin

Sundhedstjek og serverovervågning er en gratis API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i API-gateway og reverse proxy (Nginx + Spring Cloud Gateway), og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)-kurset indeholder 4 lektioner i alt.

Hold serverne sunde

Forestil dig en travl restaurant med flere kokke. Hvis en kok bliver syg, vil du vel ikke sende bestillinger til vedkommende?

Ved belastningsfordeling gør sundhedstjek præcis dette. De overvåger hele tiden backend-serverne for at sikre, at de er klar til at håndtere forespørgsler.

Hvorfor sundhedstjek er vigtige

Uden sundhedstjek kan en belastningsfordeler blive ved med at sende forespørgsler til en server, der er nede, overbelastet eller ikke svarer.

  • Dårlig brugeroplevelse: Brugerne får fejl i stedet for indhold.
  • Spildte ressourcer: Belastningsfordeleren forsøger at oprette forbindelse til en server, der ikke svarer.
  • Kaskadefejl: Overbelastning kan sprede sig, hvis forespørgsler ikke omdirigeres.

Grundlæggende sundhedstjek i Nginx

Nginx har indbyggede direktiver i sin upstream-blok til at udføre passive sundhedstjek. Disse tjek reagerer på mislykkede forbindelsesforsøg eller svar.

De to vigtigste direktiver er max_fails og fail_timeout.

`max_fails`: Mislykkede forsøg

Direktivet max_fails angiver antallet af sammenhængende mislykkede forsøg, hvorefter Nginx anser en server for "usund".

  • Standard: 1 (én fejl markerer den som usund).
  • `max_fails=0`: Deaktiverer sundhedstjek for den pågældende server.
  • En "fejl" kan være en forbindelsesfejl, en timeout eller bestemte HTTP-statuskoder (f.eks. 5xx), hvis det er konfigureret.

`fail_timeout`: Tid til gendannelse

Når en server er markeret som usund, holder Nginx op med at sende forespørgsler til den i det tidsrum, der er angivet af fail_timeout.

  • Standard: 10s (10 sekunder).
  • Efter denne timeout sender Nginx forsigtigt en forespørgsel til serveren for at kontrollere, om den er kommet sig.
  • Det forhindrer gentagne forespørgsler til en server, der er nede.

Implementering af sundhedstjek i Nginx

Lad os se, hvordan du konfigurerer max_fails og fail_timeout i en Nginx-upstream-blok. Her definerer vi to backend-servere.

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;
        }
    }
}

Håndtering af servere i Nginx

Når en server når sin grænse for max_fails inden for perioden med fail_timeout, fjerner Nginx den midlertidigt fra puljen til belastningsfordeling.

  • Forespørgsler fordeles derefter mellem de resterende sunde servere.
  • Når fail_timeout udløber, forsøger Nginx at sende en enkelt forespørgsel til den "usunde" server. Hvis det lykkes, markeres serveren som sund igen.

Overvågning af servernes sundhed

Selvom Nginx' grundlæggende sundhedstjek er passive, kan du se deres effekter i Nginx-logfilerne.

Fejllogfiler viser meddelelser, når en server markeres som nede eller oppe. Hvis du har brug for mere avanceret, aktiv overvågning og et dashboard, tilbyder Nginx Plus dedikerede funktioner, men det ligger uden for det grundlæggende Nginx.

Tip til sundhedstjek

Korrekt konfiguration af sundhedstjek er afgørende for pålidelige systemer:

  • Tilpas værdierne: Juster max_fails og fail_timeout ud fra din applikations svartid og gendannelsestid.
  • Backendens parathed: Sørg for, at dine backend-applikationer har et dedikeret sundhedsendepunkt (f.eks. /health), der rapporterer, om tjenesten reelt er klar.
  • Kombiner med overvågning: Brug eksterne overvågningsværktøjer til at give dig besked, når Nginx markerer servere som nede.

Hurtigt tjek af sundhedstjek

Du har konfigureret en Nginx-upstream-server med max_fails=2 og fail_timeout=30s. Hvad sker der, hvis serveren ikke kan håndtere tre forespørgsler i træk?

Opsummering af sundhedstjek

I denne lektion lærte vi om Nginx' vigtigste direktiver til sundhedstjek:

  • max_fails: Antallet af mislykkede forsøg, før en server markeres som usund.
  • fail_timeout: Det tidsrum, hvor en usund server fjernes fra puljen til belastningsfordeling.
  • Disse passive tjek er afgørende for at opretholde backendens pålidelighed og forbedre brugeroplevelsen.
Gratis at komme i gang

Lær API-gateway og reverse proxy (Nginx + Spring Cloud Gateway) med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Sundhedstjek og serverovervågning” gratis?

Ja — hele teksten til “Sundhedstjek og serverovervågning” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)-kurset, skal du opgradere til CoddyKit PRO. API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Sundhedstjek og serverovervågning”?

Implementér sundhedstjek, så usunde backendservere automatisk fjernes fra load-balancing-puljen. Du øver dig i API-gateway og reverse proxy (Nginx + Spring Cloud Gateway) med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)?

Der kræves ingen tidligere erfaring. API-gateway og reverse proxy (Nginx + Spring Cloud Gateway) på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “Sundhedstjek og serverovervågning”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)-lektion?

Ja. Alle API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Load-balancing-algoritmer
  2. Sundhedstjek og serverovervågning
  3. Sticky sessions og sessionspersistens
  4. Vægtet load balancing og backupservere
← Tilbage til API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)