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

Proxybufring og hurtigbufring

Utforsk Nginx' mekanismer for proxybufring og hurtigbufring for å forbedre applikasjonsytelsen og redusere belastningen på backend.

Leksjon 3 av 412 trinn

Proxybufring og hurtigbufring er en gratis leksjon i API-gateway og reverse proxy (Nginx + Spring Cloud Gateway) på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i API-gateway og reverse proxy (Nginx + Spring Cloud Gateway), og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i API-gateway og reverse proxy (Nginx + Spring Cloud Gateway) inneholder totalt 4 leksjoner.

Forbedre applikasjonsytelsen

I webutvikling er hastighet avgjørende! Brukere forventer korte lastetider, og søkemotorer belønner nettsteder med god ytelse.

Nginx kan, når det fungerer som en reverse proxy, forbedre applikasjonens hastighet og pålitelighet betydelig.

I dag skal vi se på to kraftige Nginx-funksjoner: bufring og caching.

Forstå proxy-bufring

Proxy-bufring betyr at Nginx lagrer svar fra backend-serveren midlertidig før de sendes til klienten.

Tenk på det som et venterom for data. I stedet for å sende data direkte etter hvert som de kommer inn, samler Nginx først hele svaret (eller deler av det).

Dette frikobler backend-serveren fra klienten og forbedrer effektiviteten.

Slik fungerer bufring

Uten bufring fungerer Nginx som et enkelt relé. Hvis backend-serveren er treg, opplever klienten tregheten direkte.

Med bufring gjør Nginx følgende:

  • Mottar hele svaret fra backend-serveren.
  • Lagrer det i interne buffere (minne eller disk).
  • Sender svaret til klienten i klientens hastighet.

Dette beskytter backend-serveren mot trege klienttilkoblinger.

Hvorfor bufring er nyttig

Bufring har flere viktige fordeler:

  • Frigjør backend-serveren: Backend-serveren kan bli ferdig med å sende svaret raskt og håndtere andre forespørsler.
  • Håndterer trege klienter: Nginx kan levere innhold til trege klienter uten å holde igjen backend-serveren.
  • Forbedrer påliteligheten: Hindrer at backend-serveren blir overbelastet av nettverksproblemer eller trege tilkoblinger.

Viktige innstillinger for bufring

Nginx bruker bestemte direktiver til å styre bufringen. Her er de viktigste:

  • proxy_buffering on;: Aktiverer (eller deaktiverer) bufring. Den er vanligvis on som standard.
  • proxy_buffers 4 8k;: Angir antallet (4) og størrelsen (8 KB) på bufferne for et svar.
  • proxy_buffer_size 4k;: Angir størrelsen på den første bufferen, som vanligvis brukes til svarhoder.

Disse angis i location- eller http-blokker.

http {
    proxy_buffers 4 8k;
    proxy_buffer_size 4k;

    server {
        listen 80;
        location /app {
            proxy_pass http://backend_server;
            proxy_buffering on; # Explicitly enable
        }
    }
}

Enkelt bufringsoppsett

La oss se på en grunnleggende konfigurasjon for å aktivere og konfigurere bufring for en bestemt location:

Dette oppsettet sørger for at Nginx bufrer opptil 32 KB (4 buffere * 8 KB hver) med svardata fra backend-serveren.

server {
    listen 80;
    server_name example.com;

    location /api/data {
        proxy_pass http://my_backend_service;
        proxy_buffering on;
        proxy_buffers 8 16k; # 8 buffers, each 16KB
        proxy_buffer_size 8k; # First buffer 8KB
        proxy_busy_buffers_size 16k; # Limit busy buffers
    }
}

Oppdag proxy-caching

Mens bufring handler om hvordan Nginx håndterer ett pågående svar, lagrer proxy-caching kopier av svar for fremtidige forespørsler.

Hvis flere klienter ber om den samme ressursen, kan Nginx levere den direkte fra cachen i stedet for å spørre backend-serveren på nytt hver gang.

Dette er en effektiv måte å redusere belastningen på backend-serverne på.

Slik forbedrer caching hastigheten

Når en forespørsel kommer inn:

  1. Nginx sjekker cachen for et gyldig, lagret svar.
  2. Hvis svaret finnes, leverer Nginx det umiddelbart (cache-treff).
  3. Hvis det ikke finnes, videresender Nginx forespørselen til backend-serveren, mottar svaret, lagrer det i cachen og leverer det deretter til klienten (cache-miss).

Fordeler: Raskere svartider, redusert belastning på backend-serveren og bedre skalerbarhet.

Viktige innstillinger for caching

For å konfigurere caching må du definere en cachesone og deretter bruke den på location-blokkene:

  • proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m inactive=60m max_size=1g;: Definerer hvor cachen lagres.
  • proxy_cache my_cache;: Aktiverer den navngitte cachen for en location.
  • proxy_cache_valid 200 302 10m;: Angir hvor lenge svar med bestemte statuskoder regnes som gyldige i cachen.
http {
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m
                     inactive=60m max_size=1g;

    server {
        listen 80;
        location /images/ {
            proxy_pass http://image_backend;
            proxy_cache my_cache;
            proxy_cache_valid 200 1d; # Cache 200 OK for 1 day
        }
    }
}

Grunnleggende caching-oppsett

Slik konfigurerer du Nginx til å cache statiske ressurser som bilder, CSS- eller JavaScript-filer.

Dette eksempelet oppretter en cache med navnet 'static_cache' og bruker den for forespørsler til stier under /assets/. Svar som lykkes, caches i 60 minutter.

http {
    # Define a cache zone
    proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=static_cache:20m
                     inactive=60m max_size=5g;

    server {
        listen 80;
        server_name cdn.example.com;

        location /assets/ {
            proxy_pass http://asset_service;
            proxy_cache static_cache; # Use the defined cache
            proxy_cache_valid 200 60m; # Cache 200 OK for 60 mins
            proxy_cache_revalidate on; # Revalidate stale cache
            add_header X-Cache-Status $upstream_cache_status;
        }
    }
}

Test kunnskapene dine

La oss sjekke hvor godt du har forstått ytelsesfunksjonene i Nginx.

Oppsummering av bufring og caching

Godt gjort! De har lært hvordan Nginx kan forbedre applikasjonsytelsen og backend-robustheten betydelig.

  • Proxy-bufring frikobler backend-serveren og klienten og håndterer svar effektivt.
  • Proxy-caching lagrer svar slik at gjentatte forespørsler kan leveres raskere, samtidig som belastningen på backend-serveren reduseres.

Å beherske disse funksjonene er viktig for å bygge webapplikasjoner med høy ytelse ved hjelp av Nginx.

Gratis å komme i gang

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

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Proxybufring og hurtigbufring» gratis?

Ja – hele teksten i «Proxybufring og hurtigbufring» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)-kurset, kan du oppgradere til CoddyKit PRO. Kurset i API-gateway og reverse proxy (Nginx + Spring Cloud Gateway) inneholder totalt 4 leksjoner.

Hva lærer jeg i «Proxybufring og hurtigbufring»?

Utforsk Nginx' mekanismer for proxybufring og hurtigbufring for å forbedre applikasjonsytelsen og redusere belastningen på backend. Du øver på API-gateway og reverse proxy (Nginx + Spring Cloud Gateway) med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)?

Ingen tidligere erfaring er nødvendig. API-gateway og reverse proxy (Nginx + Spring Cloud Gateway) på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «Proxybufring og hurtigbufring»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

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

Ja. Alle API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Konfigurering av enkel reverse proxy
  2. Upstream-servere og lastbalansering
  3. Proxybufring og hurtigbufring
  4. Videresending av headere og klient-IP
← Tilbake til API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)