Stuur ons een e-mail

info@serverion.com

NGINX Config voor DevOps: Serverion's truc voor implementaties zonder downtime

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.), configureren nginx.conf correct 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

NGINX

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 …

JFrog

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

  1. Laad de huidige werknemers opnieuw om de wijzigingen toe te passen:
    nginx -s herladen 
  2. Controleer de bijgewerkte ID van het hoofdproces:
    kat /run/nginx.pid 
  3. 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.

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 HUP signaal 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 HUP signaal, 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

nl_NL_formal