CH-J Server Managergestione server su SSH
Menu
Tutte le guide e gli articoli →

Gestire NGINX senza interrompere il sito web

Crea una copia di sicurezza della configurazione, verificala con nginx -t, applicala con un ricaricamento senza interruzioni e ripristina la versione precedente in caso di errore.

Ricarica invece di riavviare

Un ricaricamento indica a NGINX di leggere nuovamente la configurazione. Avvia nuovi processi worker e lascia che quelli precedenti completino le richieste aperte, quindi di solito i visitatori non notano nulla. Se la nuova configurazione non può essere applicata, NGINX continua a funzionare con quella precedente. Un riavvio arresta prima il servizio, interrompendo le connessioni, e potrebbe non riuscire ad avviarlo nuovamente se la configurazione è errata.

Crea una copia del file che modifichi

Prima di modificare il file, creane una copia accanto all’originale, includendo la data nel nome. Non lasciare copie in una directory che NGINX carica usando caratteri jolly come conf.d/*.conf o sites-enabled/*, perché caricherebbe anche quelle. Su Debian e Ubuntu modifica il file in sites-available; la voce in sites-enabled è solitamente solo un collegamento a quel file.

sudo cp -a /etc/nginx/sites-available/example.conf /root/example.conf.$(date +%Y%m%d-%H%M%S)

Verifica, poi ricarica

nginx -t controlla la sintassi e i file a cui fa riferimento la configurazione, come i certificati. Usa nginx -T per vedere la configurazione completa dopo l’inclusione degli altri file. Ricarica solo se la verifica ha esito positivo; unire i comandi con && garantisce questo comportamento. La verifica non può stabilire se la configurazione fa ciò che intendevi, quindi apri il sito web dopo il ricaricamento.

sudo nginx -t && sudo systemctl reload nginx
sudo nginx -T | less
curl -I https://example.com/

Quando qualcosa va storto

Ripristina la copia di sicurezza, esegui nuovamente la verifica e ricarica. Se il servizio si è arrestato, il registro degli errori e il journal ne indicano il motivo. Cerca messaggi relativi a una porta già in uso, a un certificato mancante o a un nome server duplicato.

sudo cp -a /root/example.conf.20261031-120000 /etc/nginx/sites-available/example.conf
sudo nginx -t && sudo systemctl reload nginx
sudo journalctl -u nginx -n 50 --no-pager
sudo tail -n 50 /var/log/nginx/error.log

Cosa non copre un ricaricamento

Le connessioni di lunga durata, come quelle WebSockets, rimangono sui vecchi worker fino alla loro conclusione, quindi i vecchi worker possono continuare a funzionare per un po’ e usare memoria aggiuntiva. Un aggiornamento del pacchetto può riavviare autonomamente il servizio. Prova prima le modifiche più ampie su un server di test, inclusi certificati e reindirizzamenti.

NGINX Manager all’interno di CH-J Server Manager

NGINX Manager modifica i file di configurazione nelle directory NGINX gestite sui server Linux, fino a 512 KiB per file. Al salvataggio, l’applicazione crea una copia di sicurezza con suffisso .chj-backup-, esegue nginx -t e mantiene la modifica solo se la verifica ha esito positivo. Un ricaricamento richiede la tua conferma esplicita ed esegue di nuovo la verifica prima di iniziare. Un collegamento simbolico abilitato non viene sostituito; modifica il file corrispondente in sites-available.

Documentazione dettagliata

NGINX: Controlling nginx →

NGINX: Beginner's Guide →

Sblocco biometrico e sicurezza →