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 tipulopen() "/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
restartcu o configurație greșită oprește site-ul complet. - Ignorarea mesajelor
[warn](de exempluconflicting 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).