NGINX Config for DevOps: A szerver trükkje a leállás nélküli telepítésekhez
Leállás nélküli telepítések azt jelenti, hogy a szolgáltatás megszakítása nélkül frissíti az alkalmazást – ez kötelező olyan vállalkozások számára, ahol még egy rövid üzemszünet is milliókba kerülhet. Az NGINX ezt lehetővé teszi a master-worker folyamatmodell és az olyan intelligens jelek segítségével, mint pl USR2 (új folyamatok indítása) és HUP (konfiguráció újratöltése). Íme a kulcs:
- Hogyan működik: Az NGINX a kapcsolatok megszakítása nélkül áthelyezi a forgalmat a régi dolgozókról a frissítettekre.
- Kulcs lépések: Használjon jeleket (
USR2,HUPstb.), konfiguráljanginx.confmegfelelően, és érvényesítse a változtatásokat az újratöltés előtt. - Technikák: Kombinálja az NGINX-et olyan módszerekkel, mint a kék-zöld telepítés vagy a Docker a zökkenőmentes frissítés érdekében.
- Egészségügyi vizsgálatok: Győződjön meg arról, hogy csak egészséges szerverek kezelik a forgalmat, az NGINX passzív vagy aktív állapotellenőrzésével.
A megfelelő konfigurációval zökkenőmentesen futhat szolgáltatásai a frissítések során, megóvhatja a bevételeket, és megőrizheti az ügyfelek bizalmát.
NGINX alapok a nulla leállási idejű telepítésekhez

Zero-Downtime Deployment magyarázata
Az NGINX master-worker modellt használ a frissítések kezeléséhez a szolgáltatás megszakítása nélkül. A fő folyamat felügyeli a konfigurációt és a vezérlést, míg a dolgozói folyamatok kezelik az ügyfélkapcsolatokat. Ez a beállítás lehetővé teszi a forgalom zökkenőmentes átváltását a régi dolgozókról az újakra a frissítések során, biztosítva a megszakítás nélküli szolgáltatást.
NGINX kapcsolatkezelés
Az NGINX speciális jelekre támaszkodik a folyamatok vezérléséhez a frissítések vagy konfigurációs változások során:
- USR2: Új mester és dolgozó folyamatokat indít el.
- CSÖRLŐ: A régi munkás folyamatokat kecsesen leállítja.
- HUP: Újratölti a konfigurációt és lecseréli a dolgozókat.
- KILÉPNI: Kecsesen lekapcsolja a mestert és a munkásokat.
Újratöltéskor az NGINX áthelyezi a régi fő folyamatazonosítót ide /run/nginx.pid.oldbin, kiírja az új főfolyamat-azonosítót /run/nginx.pid, és lehetővé teszi a régi dolgozóknak, hogy befejezzék az aktív kéréseket a leállás előtt.
Modern alkalmazástelepítések: Az NGINX és a JFrog használata…

Az NGINX beállítása folyamatos működéshez
Ahhoz, hogy a kapcsolatok aktívak maradjanak az újratöltés során, használja ki az NGINX master-worker architektúráját a következő beállításokkal.
Az NGINX legfontosabb konfigurációs lépései
Bekapcsol több_elfogadás hogy a dolgozók eseményenként több kapcsolatot kezelhessenek. Íme egy példa a konfigurációra nginx.conf:
worker_processes auto; pid /run/nginx.pid; events { worker_connections 1024; multi_accept on; } http { upstream backend { server backend1.example.com:8080; server backend2.example.com:8080; keepalive 32; } server { listen 80; server_name example.com; location / { proxy_pass http://backend; proxy_http_version 1.1; proxy_set_header Kapcsolat ""; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } } Konfiguráció újratöltése állásidő nélkül
- A módosítások alkalmazásához töltse be újra a jelenlegi dolgozókat:
nginx -s újratöltés - Ellenőrizze a frissített fő folyamatazonosítót:
cat /run/nginx.pid - Bináris frissítés végrehajtása a forgalom leállítása nélkül:
kill -USR2 $(cat /run/nginx.pid) kill -WINCH $(cat /run/nginx.pid.oldbin)
Ezek a lépések lehetővé teszik a forgalom zökkenőmentes átmenetét a régi és az új dolgozók között, biztosítva a zavartalan szolgáltatást.
sbb-itb-59e1987
Telepítési módszerek NGINX-szel
Az NGINX segítségével nulla leállási időt érhet el olyan technikák kihasználásával, mint a kék-zöld beállítások vagy a konténer alapú megközelítések.
Kék-zöld telepítési beállítás
Az NGINX segítségével kezelheti a forgalmat két környezet között – ezt szokták nevezni kék és zöld. Ezek a környezetek azonosak, de egyszerre csak egy aktív. Így működik:
- Telepítse a frissített verziót az inaktív környezetbe (pl. zöld).
- Futtasson állapotellenőrzést, hogy megbizonyosodjon arról, hogy az új verzió megfelelően működik.
- Az ellenőrzés után frissítse a NGINX konfiguráció hogy a forgalmat a frissített környezetbe irányítsák.
- Töltse be újra a konfigurációt a
HUPjelet, hogy elkerülje az aktív kapcsolatok megszakadását.
Ez a módszer zökkenőmentes átmenetet biztosít a szolgáltatás megszakítása nélkül.
Docker és NGINX integráció
A Docker és az NGINX használata leegyszerűsíti a telepítéseket azáltal, hogy konzisztens környezetet tart fenn az alkalmazás és a proxy réteg számára. A következőképpen érheti el a nulla állásidő-frissítéseket:
- Indítsa el az új tárolót az aktuális aktív mellett.
- Hajtsa végre az állapotellenőrzéseket, hogy megbizonyosodjon arról, hogy az új tároló készen áll.
- Módosítsa az NGINX upstream konfigurációját, hogy tartalmazza az új tárolót.
- Töltse be újra a konfigurációt a
HUPjelet, lehetővé téve a régi dolgozóknak, hogy befejezzék a feldolgozást, mielőtt kilépnének.
Ez a megközelítés zavartalan szolgáltatást biztosít az alkalmazás frissítése közben.
Tesztelés és ellenőrzés
Állapotellenőrzések konfigurálása
Az NGINX állapotellenőrzései biztosítják, hogy csak működő szerverek kezeljék a forgalmat. Ezek az ellenőrzések az upstream konfiguráció és a kék-zöld útválasztás mellett működnek. Az NGINX kétféle egészségügyi ellenőrzést kínál: passzív (elérhető NGINX nyílt forráskódú) és aktív (kizárólag az NGINX Plus számára).
Az NGINX nyílt forráskódú passzív állapotellenőrzéséhez állítsa be az upstream blokkot a következőképpen:
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; } Ha NGINX Plus-t használ, engedélyezheti az aktív állapotellenőrzést a következő hozzáadásával egészségügyi_ellenőrzés irányelvvel együtt a mérkőzés tömb:
location / { proxy_pass http://backend; health_check interval=5s fails=3 passes=2 mandatory persistent; match health_check { status 200; header Content-Type = application/json; body ~ '"status":"FEL"'; } } Az NGINX újratöltése előtt feltétlenül érvényesítse ezeket a konfigurációkat.
Konfiguráció érvényesítése
Mindig ellenőrizze az NGINX konfiguráció helyességét az újratöltés előtt. Használja a következő parancsot:
nginx -t -c /út/útvonal/a/nginx.conf Zero-Downtime Deployment Essentials
Az állásidő nélküli telepítések gondos NGINX-konfiguráción és alapos infrastruktúra-tervezésen múlik. Ezek az elemek együttműködve biztosítják, hogy a frissítések megszakítások nélkül történjenek.
Íme a siker kulcstényezői:
- Folyamatvezérlés és konfiguráció érvényesítése: Használja ki az NGINX architektúra előnyeit, miközben ragaszkodik az alapos tesztelési protokollokhoz.
- Az infrastruktúra stabilitása: Fenntartja a konzisztens teljesítményt és a biztonságot a teljes telepítési folyamat során.
Az egészségügyi ellenőrzésekkel és a visszaállítási lépésekkel kapcsolatos részletekért tekintse meg a Tesztelés és ellenőrzés szakasz.
Serverionplatformja megbízható stabilitással és biztonsággal támogatja ezeket az erőfeszítéseket. Az globális adatközpontok A frissítések során a teljesítmény egyenletes marad, a beépített DDoS védelem pedig gondoskodik arról, hogy a biztonság sértetlen maradjon.
Kezdje kicsiben a funkciókapcsolók használatával a nem kritikus szolgáltatásokon. Fokozatosan bővítse, miközben stratégiája középpontjában a rendszeres tesztelés, a szoros megfigyelés és az egyértelmű visszaállítási tervek állnak.
Kapcsolódó blogbejegyzések
- Az Nginx konfigurációk elsajátítása a webszerver optimális teljesítménye érdekében
- Az NGINX konfiguráció elsajátítása: Hogyan nyitja meg a szerverion a B2B webtárhely sikerét
- NGINX Config Rewind: A Serverion újraéleszti a proxy gyorsítótár hangolásának elveszett művészetét
- Az elfeledett NGINX Config Frontier: A Serverion belemerül a FastCGI Microcachingbe