nginx -t în Nginx

Comenzi de administrare Toate versiunile Nginx

Testează sintaxa fișierelor de configurare fără a opri sau reporni serverul.

Sintaxă
nginx -t [-q] [-c fișier] [-p prefix] [-g directive]

Ce face nginx -t

Comanda nginx -t citește fișierul principal de configurare (de obicei /etc/nginx/nginx.conf) împreună cu toate fișierele incluse și verifică dacă sintaxa este corectă și dacă fișierele referite (certificate, directoare de log) există. Serverul care rulează nu este afectat în niciun fel.

Este comanda pe care ar trebui să o rulezi de fiecare dată înainte de a reîncărca Nginx. Dacă testul eșuează, mesajul indică exact fișierul și linia cu problema, iar serverul continuă să funcționeze cu vechea configurație.

Pentru că trebuie să citească certificatele SSL și să deschidă fișierele de log, comanda se rulează de regulă cu sudo. Combinația uzuală este sudo nginx -t && sudo systemctl reload nginx: reîncărcarea se face doar dacă testul trece.

Opțiuni și argumente

Opțiune / Parametru Descriere
-t Testează configurația și afișează rezultatul, apoi iese.
-q Mod silențios: în timpul testului sunt afișate doar erorile (util în scripturi).
-c fișier Folosește alt fișier de configurare decât cel implicit (de exemplu o copie de test).
-p prefix Setează prefixul de căi (directorul de bază pentru căile relative).
-g directive Adaugă directive globale din linia de comandă, de exemplu -g "daemon off;".
-T Ca -t, dar afișează și întreaga configurație rezultată (vezi nginx -T).

Exemple

Exemplul 1: Testarea unei configurații corecte

Rezultatul normal când toate fișierele sunt valide:

sudo nginx -t

Ieșire în terminal

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Exemplul 2: O acoladă lipsă într-un fișier de site

Mesajul de eroare indică fișierul și linia. Nivelul [emerg] înseamnă că Nginx nu ar putea porni cu această configurație.

sudo nginx -t

Ieșire în terminal

nginx: [emerg] unexpected end of file, expecting "}" in /etc/nginx/sites-enabled/example.com:42
nginx: configuration file /etc/nginx/nginx.conf test failed

Exemplul 3: Testare și reîncărcare într-un singur pas

Operatorul && rulează a doua comandă doar dacă prima s-a încheiat cu succes.

sudo nginx -t && sudo systemctl reload nginx

Ieșire în terminal

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Greșeli frecvente

  • Rularea fără sudo: apar erori false de tipul open() "/run/nginx.pid" failed (13: Permission denied) sau imposibilitatea de a citi cheia SSL, deși configurația este corectă.
  • Reîncărcarea sau repornirea serverului fără test prealabil. Un restart cu o configurație greșită oprește site-ul complet.
  • Ignorarea mesajelor [warn] (de exemplu conflicting server name): testul trece, dar unul dintre blocurile server nu va fi folosit niciodată.

Comenzi înrudite

  • nginx -s reload: Trimite un semnal procesului master Nginx: reload, stop, quit sau reopen.
  • systemctl reload nginx: Pornește, oprește, repornește sau reîncarcă serviciul Nginx prin systemd.
  • nginx -V / nginx -T: Afișează versiunea și modulele compilate (-V) sau întreaga configurație rezultată (-T).