Configuració de NGINX per a DevOps: el truc de Serverion per a desplegaments amb temps d'inactivitat zero
Desplegaments sense temps d'inactivitat significa actualitzar la vostra aplicació sense interrompre el servei, una necessitat per a empreses on fins i tot una breu interrupció pot costar milions. NGINX ho fa possible utilitzant el seu model de procés mestre-treballador i senyals intel·ligents com USR2 (iniciar nous processos) i HUP (recarrega la configuració). Aquí teniu la clau:
- Com funciona: NGINX canvia el trànsit dels treballadors antics als actuals sense deixar de connectar.
- Passos clau: Utilitzeu senyals (
USR2,HUP, etc.), configurarnginx.confcorrectament i valideu els canvis abans de tornar a carregar. - Tècniques: combina NGINX amb mètodes com ara desplegaments blau-verd o Docker per obtenir actualitzacions sense problemes.
- Controls de salut: Assegureu-vos que només els servidors en bon estat gestionen el trànsit, utilitzant les comprovacions de salut passives o actives de NGINX.
Amb la configuració adequada, podeu mantenir els vostres serveis funcionant sense problemes durant les actualitzacions, protegir els ingressos i mantenir la confiança dels clients.
Conceptes bàsics de NGINX per a desplegaments amb temps d'inactivitat zero

S'ha explicat el desplegament sense temps d'inactivitat
NGINX utilitza un model mestre-treballador per gestionar les actualitzacions sense interrompre el servei. El procés mestre supervisa la configuració i el control, mentre que els processos de treball gestionen les connexions dels clients. Aquesta configuració permet que el trànsit passi sense problemes dels treballadors antics als nous durant les actualitzacions, garantint un servei ininterromput.
Gestió de connexions NGINX
NGINX es basa en senyals específics per controlar els processos durant les actualitzacions o els canvis de configuració:
- USR2: inicia nous processos mestre i treballador.
- MOSTRADOR: Atura els processos de treball antics amb gràcia.
- HUP: Torna a carregar la configuració i substitueix els treballadors.
- DEIXAR: Tanca l'amo i els treballadors amb gràcia.
Quan es torna a carregar, NGINX mou l'antic ID de procés mestre a /run/nginx.pid.oldbin, escriu el nou ID de procés mestre a /run/nginx.pid, i permet als treballadors antics completar les sol·licituds actives abans de tancar.
Desplegaments d'aplicacions moderns: com utilitzar NGINX i JFrog per...

Configuració de NGINX per al funcionament continu
Per mantenir les connexions actives durant les recàrregues, aprofiteu l'arquitectura mestre-treballador de NGINX amb la configuració següent.
Passos clau de configuració de NGINX
Enceneu multi_acceptar per permetre als treballadors gestionar diverses connexions per esdeveniment. Aquí teniu un exemple de configuració per a 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 Connexió ""; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } } Tornant a carregar la configuració sense temps d'inactivitat
- Torneu a carregar els treballadors actuals per aplicar els canvis:
nginx -s recarrega - Comproveu l'ID del procés mestre actualitzat:
cat /run/nginx.pid - Realitzeu una actualització binària sense aturar el trànsit:
matar -USR2 $(cat /run/nginx.pid) matar -WINCH $(cat /run/nginx.pid.oldbin)
Aquests passos permeten que el trànsit passi sense problemes entre treballadors antics i nous, garantint un servei ininterromput.
sbb-itb-59e1987
Mètodes de desplegament amb NGINX
Podeu utilitzar NGINX per aconseguir desplegaments sense temps d'inactivitat aprofitant tècniques com ara configuracions blau-verd o enfocaments basats en contenidors.
Configuració de desplegament blau-verd
Amb NGINX, podeu gestionar el trànsit entre dos entorns, comunament conegut com blau i verd. Aquests entorns són idèntics, però només un està actiu alhora. Així és com funciona:
- Desplegueu la versió actualitzada a l'entorn inactiu (p. ex., verd).
- Executeu comprovacions de salut per assegurar-vos que la nova versió funciona correctament.
- Un cop verificat, actualitzeu el Configuració NGINX per dirigir el trànsit a l'entorn actualitzat.
- Torneu a carregar la configuració amb el
HUPsenyal per evitar caure les connexions actives.
Aquest mètode garanteix una transició suau sense interrupcions del servei.
Integració de Docker i NGINX
L'ús de Docker amb NGINX racionalitza els desplegaments mantenint entorns coherents tant per a les capes d'aplicació com de proxy. A continuació s'explica com podeu aconseguir actualitzacions sense temps d'inactivitat:
- Inicieu el contenidor nou al costat de l'actiu actual.
- Feu comprovacions de salut per confirmar que el nou contenidor està preparat.
- Modifiqueu la configuració aigües amunt de NGINX per incloure el contenidor nou.
- Torneu a carregar la configuració amb el
HUPsenyal, permetent als treballadors antics acabar el processament abans de sortir.
Aquest enfocament garanteix un servei ininterromput mentre actualitzeu la vostra aplicació.
Prova i verificació
Configura comprovacions de salut
Les comprovacions de salut de NGINX ajuden a garantir que només els servidors funcionals gestionen el trànsit. Aquestes comprovacions funcionen juntament amb la configuració aigües amunt i l'encaminament blau-verd. NGINX ofereix dos tipus de controls de salut: passiu (disponible a NGINX Open Source) i actiu (exclusiu a NGINX Plus).
Per a les comprovacions de salut passives a NGINX Open Source, configureu el vostre bloc amunt així:
backend aigües amunt { servidor backend1.serverion.com:8080 max_fails=3 fail_timeout=30s; servidor backend2.serverion.com:8080 max_fails=3 fail_timeout=30s; zona backend 64k; } Si utilitzeu NGINX Plus, podeu activar els controls de salut actius afegint el control_de_sanitat directiva juntament amb a partit bloc:
ubicació / { proxy_pass http://backend; health_check interval=5s fails=3 passes=2 obligatori persistent; coincidència health_check { estat 200; header Content-Type = application/json; cos ~ '"estat":"UP"'; } } Assegureu-vos de validar aquestes configuracions abans de tornar a carregar NGINX.
Valida la configuració
Proveu sempre la vostra configuració de NGINX per comprovar si és correcta abans de tornar a carregar. Utilitzeu l'ordre següent:
nginx -t -c /path/to/your/nginx.conf Elements bàsics de desplegament sense temps d'inactivitat
Aconseguir desplegaments sense temps d'inactivitat depèn d'una acurada configuració de NGINX i d'una sòlida planificació de la infraestructura. Aquests elements funcionen conjuntament per garantir que les actualitzacions es produeixin sense interrupcions.
Aquests són els factors clau per a l'èxit:
- Control de processos i validació de configuració: Aprofiteu al màxim l'arquitectura de NGINX mentre seguiu protocols de proves exhaustius.
- Estabilitat de la infraestructura: Mantingueu un rendiment coherent i mantingueu la seguretat estricta durant tot el procés de desplegament.
Per obtenir més informació sobre les revisions de salut i els passos de desactivació, consulteu el Prova i verificació secció.
ServidorLa plataforma de suporta aquests esforços amb estabilitat i seguretat fiables. El seu centres de dades globals mantenir el rendiment estable durant les actualitzacions i la protecció DDoS integrada garanteix que la seguretat es mantingui intacta.
Comenceu petit utilitzant els commutadors de funcions als serveis no crítics. Amplieu gradualment l'escala, mantenint les proves periòdiques, el seguiment estret i els plans de retrocés clars al centre de la vostra estratègia.
Publicacions de bloc relacionades
- Dominar les configuracions de Nginx per a un rendiment òptim del servidor web
- Dominar la configuració de NGINX: com Serverion desbloqueja l'èxit de l'allotjament web B2B
- NGINX Config Rewind: Serverion reviu l'art perdut de l'ajustament de la memòria cau del servidor intermediari
- L'Oblidada NGINX Config Frontier: la immersió de Serverion a FastCGI Microcaching