NGINX Config voor DevOps: Serverion's truc voor implementaties zonder downtime
Implementaties zonder downtime betekent dat u uw applicatie kunt updaten zonder de service te onderbreken – een must voor bedrijven waar zelfs een korte uitval miljoenen kan kosten. NGINX maakt dit mogelijk met behulp van zijn master-worker procesmodel en slimme signalen zoals USR2 (nieuwe processen starten) en HUP (configuratie opnieuw laden). Hier is de sleutel:
- Hoe het werkt: NGINX verplaatst verkeer van oude workers naar bijgewerkte workers zonder de verbindingen te verbreken.
- Belangrijkste stappen: Gebruik signalen (
USR2,HUP, enz.), configurerennginx.confcorrect uit en valideer de wijzigingen voordat u ze opnieuw laadt. - TechniekenCombineer NGINX met methoden zoals blue-green deployments of Docker voor naadloze updates.
- Gezondheidscontroles: Zorg ervoor dat alleen gezonde servers het verkeer verwerken met behulp van de passieve of actieve gezondheidscontroles van NGINX.
Met de juiste configuratie kunt u ervoor zorgen dat uw services soepel blijven werken tijdens updates, uw inkomsten beschermen en het vertrouwen van uw klanten behouden.
NGINX-basisprincipes voor implementaties zonder downtime

Uitleg over implementatie zonder downtime
NGINX gebruikt een master-workermodel om updates af te handelen zonder de service te onderbreken. Het masterproces houdt toezicht op de configuratie en controle, terwijl de workerprocessen de clientverbindingen beheren. Deze configuratie zorgt ervoor dat verkeer tijdens updates naadloos van oude workers naar nieuwe workers kan overschakelen, waardoor een ononderbroken service wordt gegarandeerd.
NGINX-verbindingsbeheer
NGINX is afhankelijk van specifieke signalen om processen te besturen tijdens upgrades of configuratiewijzigingen:
- USR2: Start nieuwe master- en werkprocessen.
- LIER: Stopt oude werkprocessen op een elegante manier.
- HUP: Laadt de configuratie opnieuw en vervangt workers.
- ONTSLAG NEMEN: Schakelt de master en de workers op een elegante manier uit.
Bij het opnieuw laden verplaatst NGINX de oude masterproces-ID naar /run/nginx.pid.oldbin, schrijft de nieuwe masterproces-ID naar /run/nginx.piden zorgt ervoor dat oude werknemers actieve verzoeken kunnen voltooien voordat de computer wordt afgesloten.
Moderne app-implementaties: hoe je NGINX en JFrog gebruikt om …

NGINX instellen voor continue werking
Om de verbindingen actief te houden tijdens het herladen, kunt u gebruikmaken van de master-worker-architectuur van NGINX met de volgende instellingen.
Belangrijkste NGINX-configuratiestappen
Aanzetten multi_accept om werknemers meerdere verbindingen per gebeurtenis te laten verwerken. Hier is een voorbeeldconfiguratie voor nginx.conf:
werkprocessen auto; pid /run/nginx.pid; events { werkverbindingen 1024; multi_accept aan; } http { upstream backend { server backend1.example.com:8080; server backend2.example.com:8080; keepalive 32; } server { listen 80; servernaam example.com; locatie / { proxy_pass http://backend; proxy_http_versie 1.1; proxy_set_header Verbinding ""; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } } Configuratie opnieuw laden zonder downtime
- Laad de huidige werknemers opnieuw om de wijzigingen toe te passen:
nginx -s herladen - Controleer de bijgewerkte ID van het hoofdproces:
kat /run/nginx.pid - Voer een binaire upgrade uit zonder het verkeer te stoppen:
kill -USR2 $(cat /run/nginx.pid) kill -WINCH $(cat /run/nginx.pid.oldbin)
Dankzij deze stappen verloopt de overgang van oude naar nieuwe werknemers soepel, waardoor een ononderbroken dienstverlening wordt gegarandeerd.
sbb-itb-59e1987
Implementatiemethoden met NGINX
Met NGINX kunt u implementaties realiseren zonder downtime door gebruik te maken van technieken zoals blue-green-installaties of containergebaseerde benaderingen.
Blue-Green implementatie-instelling
Met NGINX kunt u het verkeer tussen twee omgevingen beheren – vaak aangeduid als blauw en groenteDeze omgevingen zijn identiek, maar er is er maar één tegelijk actief. Zo werkt het:
- Implementeer de bijgewerkte versie in de inactieve omgeving (bijvoorbeeld groen).
- Voer gezondheidscontroles uit om te controleren of de nieuwe versie goed functioneert.
- Zodra het geverifieerd is, werk je de NGINX-configuratie om verkeer naar de bijgewerkte omgeving te routeren.
- Laad de configuratie opnieuw met behulp van de
HUPsignaal om te voorkomen dat actieve verbindingen worden verbroken.
Deze methode garandeert een soepele overgang zonder serviceonderbrekingen.
Docker en NGINX-integratie
Docker met NGINX stroomlijnt implementaties door consistente omgevingen te behouden voor zowel uw applicatie- als proxylagen. Zo bereikt u updates zonder downtime:
- Start de nieuwe container naast de huidige actieve container.
- Voer gezondheidscontroles uit om te bevestigen dat de nieuwe container klaar is.
- Wijzig de upstream-configuratie van NGINX om de nieuwe container op te nemen.
- Laad de configuratie opnieuw met de
HUPsignaal, waardoor de oude werknemers de verwerking kunnen afronden voordat ze vertrekken.
Deze aanpak garandeert een ononderbroken service terwijl uw applicatie wordt bijgewerkt.
Testen en verificatie
Gezondheidscontroles configureren
NGINX-statuscontroles zorgen ervoor dat alleen functionele servers het verkeer verwerken. Deze controles werken samen met upstreamconfiguratie en blue-green routing. NGINX biedt twee soorten statuscontroles: passief (beschikbaar in NGINX Open Source) en actief (exclusief voor NGINX Plus).
Voor passieve gezondheidscontroles in NGINX Open Source stelt u uw upstream-blok als volgt in:
upstream backend { server backend1.serverion.com:8080 max_fails=3 fail_timeout=30s; server backend2.serverion.com:8080 max_fails=3 fail_timeout=30s; zone backend 64k; } Als u NGINX Plus gebruikt, kunt u actieve gezondheidscontroles inschakelen door de volgende stappen uit te voeren: gezondheidscontrole richtlijn samen met een overeenkomst blok:
locatie / { proxy_pass http://backend; health_check interval=5s mislukt=3 passes=2 verplicht persistent; match health_check { status 200; header Content-Type = application/json; body ~ '"status":"UP"'; } } Zorg ervoor dat u deze configuraties valideert voordat u NGINX opnieuw laadt.
Configuratie valideren
Controleer altijd de juistheid van uw NGINX-configuratie voordat u deze opnieuw laadt. Gebruik de volgende opdracht:
nginx -t -c /pad/naar/uw/nginx.conf Essentiële implementatie zonder downtime
Het bereiken van implementaties zonder downtime is afhankelijk van een zorgvuldige NGINX-configuratie en een gedegen infrastructuurplanning. Deze elementen werken samen om ervoor te zorgen dat updates zonder onderbrekingen plaatsvinden.
Dit zijn de belangrijkste factoren voor succes:
- Procesbesturing en configuratievalidatie: Profiteer optimaal van de architectuur van NGINX en houd u aan uitgebreide testprotocollen.
- Infrastructuurstabiliteit: Zorg voor consistente prestaties en een goede beveiliging tijdens het implementatieproces.
Voor meer informatie over gezondheidscontroles en terugdraaistappen, zie de Testen en verificatie sectie.
ServerionHet platform van ondersteunt deze inspanningen met betrouwbare stabiliteit en veiligheid. wereldwijde datacentra Zorgt ervoor dat de prestaties stabiel blijven tijdens updates en de ingebouwde DDoS-beveiliging zorgt ervoor dat de beveiliging intact blijft.
Begin klein door functie-switches te gebruiken voor niet-kritieke services. Schaal geleidelijk op, terwijl regelmatig testen, nauwlettend monitoren en duidelijke rollbackplannen centraal staan in uw strategie.
Gerelateerde blogberichten
- Nginx-configuraties onder de knie krijgen voor optimale webserverprestaties
- NGINX-configuratie onder de knie krijgen: hoe Serverion succes in B2B-webhosting mogelijk maakt
- NGINX Config Rewind: Serverion laat de verloren kunst van proxycache-tuning herleven
- De vergeten NGINX-configuratiegrens: Serverion's duik in FastCGI-microcaching