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

Konfigurera en enkel reverse proxy

Konfigurera Nginx för att vidarebefordra förfrågningar till en enda backendapplikation eller server.

Lektion 1 av 411 steg

Konfigurera en enkel reverse proxy är en gratis lektion i API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) på CoddyKit. Detta är lektion 1 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.

Vad är en omvänd proxy?

Enkelt uttryckt fungerar en omvänd proxy som en mellanhand mellan klienter (till exempel din webbläsare) och dina backendservrar. När du skickar en förfrågan går den först till den omvända proxyn.

Den omvända proxyn vidarebefordrar sedan din förfrågan till rätt backendserver, samlar in svaret och skickar tillbaka det till dig. Den fungerar ungefär som en hjälpsam receptionist för dina webbtjänster!

Nginx: trafikpolisen

Nginx (uttalas "engine-x") är en populär webbserver med hög prestanda som även kan fungera som en mycket effektiv omvänd proxy.

Den finns i nätverkets "kant" och tar emot alla inkommande klientförfrågningar. Baserat på sin konfiguration avgör Nginx vilken backendapplikation eller server som ska hantera förfrågan.

Tänk på det som en trafikpolis som dirigerar inkommande förfrågningar till rätt destination.

Grunderna i Nginx-serverblock

Nginx-konfigurationer är organiserade i block. Det primära blocket för hantering av inkommande anslutningar är server-blocket.

Varje server-block definierar en virtuell värd och anger:

  • Vilken port Nginx lyssnar på (direktivet listen).
  • Vilka domännamn det svarar på (direktivet server_name).

Det är här Nginx avgör vilken specifik applikationskonfiguration som ska användas för en viss förfrågan.

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

    # Other configurations will go here
}

Routning med location-block

Inuti ett server-block använder du location-block för att definiera hur Nginx ska hantera förfrågningar för specifika URL:er eller URL-mönster.

Ett location / {}-block matchar till exempel alla förfrågningar, medan ett location /api {}-block matchar förfrågningar som börjar med /api.

Det gör att du kan dirigera olika delar av applikationen till olika backendtjänster.

server {
    listen 80;
    server_name myapp.com;

    location / {
        # How to handle requests to myapp.com/
    }

    location /api {
        # How to handle requests to myapp.com/api
    }
}

Vidarebefordra förfrågningar: proxy_pass

Det magiska direktivet för omvänd proxyhantering är proxy_pass. Det talar om för Nginx vart den inkommande förfrågan ska vidarebefordras.

Du placerar proxy_pass inuti ett location-block. Dess värde är URL:en till backendservern eller backendapplikationen.

  • http://localhost:8080: En lokal webbserver.
  • http://my-backend-service.com: En fjärrtjänst.

Nginx tar klientens förfrågan och skickar den direkt till den angivna URL:en.

Konfigurera en enkel omvänd proxy

Nu skapar vi en enkel Nginx-konfiguration för proxyhantering. Vi ställer in Nginx så att det lyssnar på port 80 och vidarebefordrar alla förfrågningar till en backendapplikation som körs på localhost:8080.

Det döljer backendens port och gör att Nginx kan hantera den offentliga trafiken.

server {
    listen 80;
    server_name myapp.com;

    location / {
        proxy_pass http://localhost:8080;
    }
}

Bevara information om förfrågningen

När Nginx fungerar som proxy agerar det på klientens vägnar. Som standard kan viss ursprunglig klientinformation (som IP-adressen) gå förlorad eller ersättas av Nginx egna uppgifter.

För att bevara denna information använder vi direktiv med proxy_set_header. Viktiga headers att ange är:

  • Host: Den ursprungliga efterfrågade värden.
  • X-Real-IP: Klientens faktiska IP-adress.
  • X-Forwarded-For: En lista över proxyservrarnas IP-adresser, inklusive klientens.
  • X-Forwarded-Proto: Det ursprungliga protokollet (HTTP/HTTPS).

Dessa headers är viktiga för att backendapplikationer ska kunna identifiera klienten korrekt och hantera förfrågningar.

Proxyhantering med rätt headers

Det är god praxis att inkludera viktiga headers i konfigurationen för den omvända proxyn. Det hjälper backendapplikationen att ta emot korrekt klientinformation.

Här är vårt tidigare exempel, uppdaterat med vanliga direktiv med proxy_set_header.

server {
    listen 80;
    server_name myapp.com;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Varför använda en enkel proxy?

Även en enkel konfiguration för en omvänd proxy ger betydande fördelar:

  • Säkerhet: Döljer backendserverns direkta IP-adress och port från allmänheten.
  • Lastfördelning: (Även för en enda server förbereder det för fler servrar.)
  • SSL-terminering: Nginx kan hantera HTTPS-kryptering och avlasta backendservern.
  • URL-omskrivning: Visa en renare URL för klienterna samtidigt som förfrågningarna internt dirigeras till komplexa sökvägar.

Denna enda ingångspunkt förenklar hanteringen och ger bättre kontroll över trafiken.

Snabbkontroll: Nginx-proxy

Anta att följande konfigurationsutdrag för Nginx används. Vilket direktiv används för att vidarebefordra klientförfrågningar till en backendserver?

server {
listen 80;
server_name example.com;
location / {
# THIS IS WHERE THE DIRECTIVE GOES
http://my-backend-app:9000;
}
}

Sammanfattning: enkel proxyhantering

Utmärkt! Du har lärt dig grunderna i att konfigurera Nginx som en enkel omvänd proxy.

Vi har gått igenom:

  • Rollen för blocken server och location.
  • Hur proxy_pass används för att vidarebefordra förfrågningar.
  • Vikten av proxy_set_header för att bevara klientinformation.

Dessa grundläggande kunskaper är viktiga för att bygga mer komplexa och robusta Nginx-konfigurationer. Härnäst utforskar vi hur flera backend-servrar kan hanteras!

Gratis att börja

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 ”Konfigurera en enkel reverse proxy” gratis?

Ja – hela texten till ”Konfigurera en enkel reverse proxy” 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 ”Konfigurera en enkel reverse proxy”?

Konfigurera Nginx för att vidarebefordra förfrågningar till en enda backendapplikation eller server. 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 1 av 4.

Hur lång tid tar lektionen ”Konfigurera en enkel reverse proxy”?

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

  1. Konfigurera en enkel reverse proxy
  2. Upstream-servrar och lastbalansering
  3. Proxybuffring och cachelagring
  4. Vidarebefordran av headers och klientens IP-adress
← Tillbaka till API-gateway och reverse proxy (Nginx + Spring Cloud Gateway)