Nginx i containerbaserte miljøer
Distribuer og administrer Nginx effektivt i Docker-containere og Kubernetes-klynger.
Nginx i containerbaserte miljøer 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.
Hvorfor kjøre Nginx i containere?
Det gir mange fordeler å kjøre Nginx i containere, for eksempel Docker. Du får et konsistent miljø som sørger for at Nginx oppfører seg likt overalt, fra den bærbare datamaskinen din til produksjon.
De viktigste fordelene er:
- Portabilitet: Flytt Nginx-applikasjoner enkelt mellom ulike systemer.
- Isolasjon: Nginx kjører i sitt eget isolerte miljø, noe som hindrer konflikter.
- Skalerbarhet: Start raskt nye Nginx-instanser når trafikken øker.
- Ressurseffektivitet: Containere deler vertens OS-kjerne og bruker færre ressurser enn tradisjonelle virtuelle maskiner.
Din første Nginx-Dockerfile
En Dockerfile er et skript som inneholder instruksjoner for å bygge et Docker-image. Når du skal kjøre Nginx i en container, starter du vanligvis med et offisielt Nginx-image og legger deretter til egne konfigurasjoner eller statiske filer.
Her er en grunnleggende Dockerfile for å opprette et Nginx-image:
FROM nginx:latest
COPY ./nginx.conf /etc/nginx/nginx.conf
COPY ./html /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]Kjøre Nginx i Docker
Når du har en Dockerfile (og eventuelt nginx.conf- og html-filer), kan du bygge et image og kjøre det.
Bygg først imaget (gi det navnet my-nginx):
docker build -t my-nginx .
Kjør deretter en container fra imaget, og koble port 8080 på verten til port 80 i containeren:
docker run -d -p 8080:80 --name my-nginx-container my-nginxEgendefinert Nginx-konfigurasjon i Docker
Du trenger ofte å bruke en egendefinert nginx.conf. I stedet for å bygge den inn i imaget med COPY (som i Dockerfile-eksempelet) kan du montere den som et volum. Da kan du endre konfigurasjonen uten å bygge imaget på nytt.
Slik monterer du en lokal ./custom-nginx.conf-fil i containeren:
docker run -d -p 8080:80 \
--name my-nginx-custom \
-v ./custom-nginx.conf:/etc/nginx/nginx.conf \
nginx:latestNginx med Docker Compose
For applikasjoner med flere tjenester (for eksempel Nginx som reverse proxy for et backend-API) er Docker Compose svært nyttig. Det lar deg definere og kjøre Docker-applikasjoner med flere containere ved hjelp av én YAML-fil.
Dette eksempelet setter opp Nginx til å videresende forespørsler til en enkel webtjeneste:
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
app:
image: httpd:alpine
expose:
- "8080"Grunnleggende om Nginx og Kubernetes
Kubernetes (K8s) er en åpen kildekodeplattform for containerorkestrering. Når du distribuerer Nginx i et produksjonsmiljø, tilbyr Kubernetes avanserte funksjoner som:
- Automatisert distribusjon: Deklarativ konfigurasjon for ønsket tilstand.
- Skalering: Skaler Nginx-instanser enkelt opp eller ned.
- Selvreparasjon: Starter automatisk mislykkede Nginx-containere på nytt eller erstatter dem.
- Lastbalansering: Fordeler trafikken mellom flere Nginx-instanser.
Viktige K8s-konsepter for Nginx omfatter Pods, Deployments og Services.
Distribuere Nginx i Kubernetes
I Kubernetes definerer du applikasjonene dine ved hjelp av YAML-filer. Et Deployment-objekt administrerer et sett med identiske Pods og sørger for at et angitt antall Nginx-instanser alltid kjører.
Her er en grunnleggende Kubernetes-Deployment for Nginx:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80Eksponere Nginx med K8s-tjenester
En Kubernetes-Service er en abstrakt måte å eksponere en applikasjon som kjører i et sett med Pods på. Den gir en stabil IP-adresse og et DNS-navn for Nginx-distribusjonen din, selv om Pods blir erstattet.
Vanlige Service-typer for Nginx omfatter NodePort (eksponerer Nginx på en port på tvers av alle klyngenoder) og LoadBalancer (integreres med lastbalansere i skyen).
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: NodePortNginx-konfigurasjon med ConfigMaps
For å administrere Nginx-konfigurasjon i Kubernetes er ConfigMaps den anbefalte metoden. En ConfigMap lagrer ikke-konfidensielle data som nøkkel-verdi-par, som deretter kan monteres som filer i Nginx-Pods.
Dette gjør at du kan oppdatere Nginx-konfigurasjonen uten å bygge Docker-imaget på nytt eller endre Deployment-YAML-filen direkte.
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-config
data:
nginx.conf: |
events { worker_connections 1024; }
http {
server {
listen 80;
location / {
return 200 'Hello from Nginx in K8s!';
}
}
}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-configmap-deployment
spec:
selector:
matchLabels:
app: nginx-configmap
template:
metadata:
labels:
app: nginx-configmap
spec:
containers:
- name: nginx
image: nginx:latest
volumeMounts:
- name: nginx-config-volume
mountPath: /etc/nginx/nginx.conf
subPath: nginx.conf
volumes:
- name: nginx-config-volume
configMap:
name: nginx-configTest containerkunnskapene dine
Hvilke av de følgende metodene er gyldige for å administrere egendefinerte Nginx-konfigurasjonsfiler når Nginx kjører i en Docker-container eller Kubernetes-klynge?
Oppsummering: Nginx i containere
Vi har sett på hvordan Nginx kan distribueres og administreres effektivt i containeriserte miljøer, med fokus på Docker og Kubernetes.
- Docker: Gir isolasjon og portabilitet, slik at Nginx kan kjøre konsistent.
- Dockerfile: Brukes til å bygge egendefinerte Nginx-images, inkludert egendefinerte konfigurasjoner.
- Docker Compose: Orkestrerer Nginx-oppsett med flere containere under utvikling.
- Kubernetes: Tilbyr robust orkestrering for produksjon, med funksjoner som skalering og selvreparasjon.
- Deployments og Services: Sentrale K8s-objekter for å administrere og eksponere Nginx-Pods.
- ConfigMaps: Den standardiserte K8s-måten å administrere Nginx-konfigurasjon dynamisk på.
Det er avgjørende å beherske disse konseptene for moderne og skalerbare Nginx-distribusjoner.
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 «Nginx i containerbaserte miljøer» gratis?
Ja – hele teksten i «Nginx i containerbaserte miljøer» 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 «Nginx i containerbaserte miljøer»?
Distribuer og administrer Nginx effektivt i Docker-containere og Kubernetes-klynger. 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 «Nginx i containerbaserte miljøer»?
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
- Nginx-logging og måledata
- Ytelsesjustering av Nginx
- Nginx i containerbaserte miljøer
- Nedlastingsfrie omlastinger og konfigurasjonstesting