NGINX Config per DevOps: il trucco di Serverion per implementazioni senza tempi di inattività

NGINX Config per DevOps: il trucco di Serverion per implementazioni senza tempi di inattività

Distribuzioni senza tempi di inattività significa aggiornare la tua applicazione senza interrompere il servizio, un must per le aziende in cui anche una breve interruzione può costare milioni. NGINX rende questo possibile utilizzando il suo modello di processo master-worker e segnali intelligenti come USR2 (avviare nuovi processi) e HUP (ricarica configurazione). Ecco la chiave:

  • Come funziona:NGINX sposta il traffico dai vecchi worker a quelli aggiornati senza perdere connessioni.
  • Passaggi chiave: Usa segnali (USR2, HUP, ecc.), configurare nginx.conf correttamente e convalidare le modifiche prima di ricaricarle.
  • Tecniche: combina NGINX con metodi come le distribuzioni blue-green o Docker per aggiornamenti senza interruzioni.
  • Controlli sanitari: assicurarsi che solo i server sani gestiscano il traffico, utilizzando i controlli di integrità passivi o attivi di NGINX.

Con la giusta configurazione, puoi garantire il corretto funzionamento dei tuoi servizi durante gli aggiornamenti, proteggere i ricavi e mantenere la fiducia dei clienti.

Nozioni di base di NGINX per distribuzioni senza tempi di inattività

Nginx

Spiegazione della distribuzione senza tempi di inattività

NGINX utilizza un modello master-worker per gestire gli aggiornamenti senza interrompere il servizio. Il processo master supervisiona la configurazione e il controllo, mentre i processi worker gestiscono le connessioni client. Questa configurazione consente al traffico di passare senza problemi dai vecchi worker a quelli nuovi durante gli aggiornamenti, garantendo un servizio ininterrotto.

Gestione della connessione NGINX

NGINX si basa su segnali specifici per controllare i processi durante gli aggiornamenti o le modifiche alla configurazione:

  • USR2: Avvia nuovi processi master e worker.
  • VERRICELLO: Arresta in modo corretto i vecchi processi worker.
  • HUP: Ricarica la configurazione e sostituisce i worker.
  • ESENTATO: Arresta in modo corretto il master e i worker.

Durante il ricaricamento, NGINX sposta il vecchio ID del processo master in /run/nginx.pid.oldbin, scrive il nuovo ID del processo master in /run/nginx.pide consente ai vecchi lavoratori di completare le richieste attive prima di arrestarsi.

Distribuzioni di app moderne: come utilizzare NGINX e JFrog per...

JFrog

Configurazione di NGINX per il funzionamento continuo

Per mantenere attive le connessioni durante i ricaricamenti, sfrutta l'architettura master-worker di NGINX con le seguenti impostazioni.

Passaggi chiave per la configurazione di NGINX

Accendi multi_accetta per consentire ai worker di gestire più connessioni per evento. Ecco un esempio di configurazione per nginx.conf:

worker_processes auto; pid /run/nginx.pid; eventi { 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; posizione / { proxy_pass http://backend; proxy_http_version 1.1; proxy_set_header Connessione ""; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } } 

Ricaricamento della configurazione senza tempi di inattività

  1. Ricarica i worker correnti per applicare le modifiche:
    nginx -s ricarica 
  2. Controllare l'ID del processo master aggiornato:
    gatto /run/nginx.pid 
  3. Eseguire un aggiornamento binario senza interrompere il traffico:
    uccidi -USR2 $(cat /run/nginx.pid) uccidi -WINCH $(cat /run/nginx.pid.oldbin) 

Questi passaggi consentono una transizione fluida del traffico tra i vecchi e i nuovi lavoratori, garantendo un servizio senza interruzioni.

Metodi di distribuzione con NGINX

È possibile utilizzare NGINX per ottenere distribuzioni senza tempi di inattività sfruttando tecniche come configurazioni blue-green o approcci basati su container.

Configurazione della distribuzione blu-verde

Con NGINX, puoi gestire il traffico tra due ambienti, comunemente denominati blu e verdeQuesti ambienti sono identici, ma solo uno è attivo alla volta. Ecco come funziona:

  • Distribuire la versione aggiornata nell'ambiente inattivo (ad esempio, verde).
  • Eseguire controlli di integrità per garantire che la nuova versione funzioni correttamente.
  • Una volta verificato, aggiorna il Configurazione NGINX per instradare il traffico verso l'ambiente aggiornato.
  • Ricaricare la configurazione utilizzando il HUP segnale per evitare di perdere connessioni attive.

Questo metodo garantisce una transizione fluida e senza interruzioni del servizio.

Integrazione Docker e NGINX

L'utilizzo di Docker con NGINX semplifica le distribuzioni mantenendo ambienti coerenti sia per i livelli applicativi che per quelli proxy. Ecco come ottenere aggiornamenti senza tempi di inattività:

  • Avvia il nuovo contenitore accanto a quello attualmente attivo.
  • Eseguire controlli sanitari per confermare che il nuovo contenitore sia pronto.
  • Modificare la configurazione upstream di NGINX per includere il nuovo contenitore.
  • Ricaricare la configurazione con il HUP segnale, consentendo ai vecchi lavoratori di terminare l'elaborazione prima di uscire.

Questo approccio garantisce un servizio ininterrotto durante l'aggiornamento dell'applicazione.

Test e verifica

Configurare i controlli sanitari

I controlli di integrità di NGINX aiutano a garantire che solo i server funzionanti gestiscano il traffico. Questi controlli si integrano con la configurazione upstream e il routing blue-green. NGINX offre due tipi di controlli di integrità: passivo (disponibile in NGINX Open Source) e attivo (esclusiva di NGINX Plus).

Per i controlli di integrità passivi in NGINX Open Source, imposta il tuo blocco upstream in questo modo:

backend upstream { server backend1.serverion.com:8080 max_fails=3 fail_timeout=30s; server backend2.serverion.com:8080 max_fails=3 fail_timeout=30s; zona backend 64k; } 

Se stai utilizzando NGINX Plus, puoi abilitare i controlli di integrità attivi aggiungendo controllo_salute direttiva insieme a una incontro bloccare:

posizione / { proxy_pass http://backend; health_check intervallo=5s fallimenti=3 passaggi=2 obbligatorio persistente; corrispondenza health_check { stato 200; intestazione Content-Type = application/json; corpo ~ '"status":"UP"'; } } 

Assicuratevi di convalidare queste configurazioni prima di ricaricare NGINX.

Convalida configurazione

Verifica sempre la correttezza della configurazione di NGINX prima di ricaricarla. Usa il seguente comando:

nginx -t -c /percorso/verso/il/tuo/file/nginx.conf 

Elementi essenziali per la distribuzione senza tempi di inattività

Il raggiungimento di distribuzioni a zero tempi di inattività dipende da un'attenta configurazione di NGINX e da una solida pianificazione dell'infrastruttura. Questi elementi interagiscono per garantire che gli aggiornamenti avvengano senza interruzioni.

Ecco i fattori chiave per il successo:

  • Controllo di processo e convalida della configurazione: Sfrutta appieno l'architettura di NGINX rispettando rigorosi protocolli di test.
  • Stabilità delle infrastrutture: Mantenere prestazioni costanti e garantire la sicurezza durante l'intero processo di distribuzione.

Per i dettagli sui controlli sanitari e sui passaggi di rollback, consultare Test e verifica sezione.

ServerionLa piattaforma supporta questi sforzi con stabilità e sicurezza affidabili. centri dati globali mantiene le prestazioni stabili durante gli aggiornamenti e la protezione DDoS integrata garantisce che la sicurezza resti intatta.

Inizia in piccolo utilizzando i toggle delle funzionalità sui servizi non critici. Aumenta gradualmente, mantenendo test regolari, un monitoraggio attento e piani di rollback chiari al centro della tua strategia.

Post del blog correlati

it_IT