NGINX este un de înaltă performanță și de încredere de web server, capabil de manipulare cantități uriașe de trafic pentru internet e mai aglomerat site-uri web. Când depanați, aveți nevoie de o modalitate de a înțelege traficul, iar NGINX oferă funcții flexibile de logare pentru a capta detalii valoroase și pentru a vă ajuta să înțelegeți comportamentul serverului dvs. web.NGINX oferă două fișiere diferite pentru înregistrarea datelor valoroase ale serverului web., Aceste două fișiere sunt error_log și access_log. access_log este utilizat pentru stocarea informațiilor despre solicitările clienților Webși error_log stochează alte mesaje neașteptate sau informative.fișierul access_log colectează toate solicitările clientului imediat după procesarea solicitării, oferind o modalitate excelentă de a înregistra paginile pe care utilizatorii le solicită de pe serverul dvs. web., Puteți alege unde acess_log de date este scris folosind următorul fișier de configurare sintaxa:
access_log path ] ];access_log off;
Specifyingformat vă permite să utilizați un format personalizat în jurnalele dvs. prin utilizarea de variabile, cum ar fi numărul de bytessent la client ($bytes_sent) sau cerere lungime ($request_length).
în mod normal, NGINX va înregistra fiecare tranzacție itprocesses în access_log. Parametrul if = condiție oferă un powerfulway pentru a efectua logare condiționată, astfel încât onlystores jurnal de acces mesaje jurnal dacă unele condiție este adevărat., De exemplu, dacă youonly doresc să înregistreze cereri returnarea HTTP 404 cod de stare puteți folosi următorul fragment:
map $status $should_log {404 1;default 0;}access_log logs/access.log combined if=$should_log;
Cu această schimbare orice cereri completedsuccessfully (2xx), redirecționat la altă pagină (3xx) sau întâlnit o servererror (5xx) nu vor fi înregistrate în registrul de intrări/acces.log-only404 erori vor fi înregistrate.
Dacă aveți mai mult de un virtual host ormultiple http, server, sau locație directivesthensometimes este la îndemână pentru a putea dezactiva logare de la actuala directivă nivel, și în special pe valoarea a fost creat pentru acest scop.,Următoarea linie de configurare arată cum puteți preveni NGINX din writingaccess informații pentru orice access_log targetat nivelul actual:
access_log off;
Pentru o explicație mai completă a configurationoptions, a verifica afară de NGINX access_log de documentare.NGINX suportă o gamă largă de niveluri de severitate pentru a facilita înregistrarea informațiilor care vă interesează. Fiecare dintre aceste niveluri poate fi utilizat cu Directiva error_log pentru a seta nivelul minim la care sunt înregistrate mesajele., Aici sunt supportedlevels în cel mai mic la cel mai mare ordin, împreună cu un ghid despre cum sunt utilizate:
- Depanare Depanare mesaje care nu sunt utile în majoritatea timpului.
- Info – mesaje informative care ar putea fi bine de știut.
- notă-sa întâmplat ceva normal, dar semnificativ și trebuie remarcat.
- avertizează-sa întâmplat ceva neașteptat, dar nu este un motiv de îngrijorare.
- eroare-ceva nu a reușit.
- Crit-a apărut o stare critică.
- alertă-este necesară o acțiune imediată.
- Emerg-sistemul este inutilizabil.,
Configurarea error_log
în mod implicit, error_log fișier surprinde toate mesajele de jurnal de la eroare de nivelul de severitate ceea ce înseamnă că’sprimarily utilizate pentru înțelegerea fatal sau critică mesaje pentru a vă ajuta withtroubleshooting. Locația implicită pentru jurnalele error_logis / eroare.jurnal. Modul NGINXstores mesaje de eroare este flexibil și, împreună cu permițându-vă să scrie messagesto un fișier—l susține, de asemenea, trimiterea error_logmessages la stderr sau syslog daemon. Dacă rulați NGINXopen source 1.5.,2 sau mai nou, puteți trimite, de asemenea, mesaje error_log în mai multe locuri simultan, specificând mai multe directive error_log la același nivel de configurare.
Dacă doriți să vă conectați toate mesajele de la sau peste nivelul de warn log severitatea face urmatoarea schimbare de configurare:
error_log logs/error.log warn;
Logare la Syslog Cu NGINX
Ambele access_log și error_log directivele suport pentru trimiterea de mesaje de la un syslog daemon prin utilizarea syslog: string în configurația dumneavoastră., Următorul fragment de cod arată sintaxa pentru utilizarea fie a directivelor cu un syslog daemon:
http {error_log syslog:server;…}
De exemplu, dacă doriți să adresați toate error_log mesaje cu warn sau mai mare severitate la syslogdaemon utilizați această directivă linie:
error_log syslog:server=192.168.1.1 severity=warn;
puteți personaliza și mai mult syslogconfiguration pentru a se potrivi mediului prin utilizarea syslog parametru descrise la NGINXsyslog de documentare.
gestionarea jurnalelor fără frustrare. (Este un lucru.,)
Agregat, să organizați și să gestionați jurnalele cu Papertrail
Lucruri pentru a Viziona Afară Pentru
flexibilitatea NGINX logare oferă vine la un cost, și există unele lucruri pentru a viziona afară pentru atunci când scrieți yourconfiguration fișier. Am acoperit deja NGINX este capacitatea de a trece peste loggingconfigurations la directiva nivel, și această caracteristică este extrem de util forlogging informații suplimentare ori de câte ori utilizatorii accesa anumite căi, de exemplu, loggingextra informații de trafic pentru orice utilizatorii de accesarea /privat URI., Cu toate acestea, utilizarea jurnalelor de acces imbricate poate deveni rapidcomplex și ar trebui să aveți grijă să nu utilizați prea mult această caracteristică.
scrierea access_logentries într-un fișier de pe disc poate degrada performanța serverului și poate crește latența răspunsului pentru solicitările utilizatorilor. Pentru serverele web care au nevoie să mențină o performanță ridicată, NGINX oferă o modalitate de a scrie mesaje de jurnal într-un tampon ciclic inmemory, ocolind complet discul. Extragerea acestor jurnale este mai implicată decât citirea unui fișier, deci ar trebui să utilizați acest lucru numai dacă performanța este critică pentru volumul dvs. de muncă.,
pentru a utiliza această caracteristică, versiunea dvs. de NGINX trebuie să fie configurată utilizând opțiunea—with-debug. Puteți verifica dacă acesta este cazul de a face acest lucru:
$ nginx -V 2>&1 | grep—‘—with-debug’configure arguments: --with-debug
În fișierul de configurare puteți activa scris jurnal de memorie cu următorul fragment:
error_log memory:32m debug;...http {...}
Acest lucru va scrie toate mesajele de jurnal la nivelul de debug. Extragerea mesajelor de jurnal din memorie implică utilizarea gdb pentru a vă conecta la procesul NGINX și a copia și lipi următorul script la prompt:
set $log = ngx_cycle->logwhile $log->writer != ngx_log_memory_writerset $log = $log->nextendset $buf = (ngx_log_memory_buf_t *) $log->wdatadump binary memory debug_log.txt $buf->start $buf->end
apoi părăsiți GDB folosind Ctrl-D., Scriptul de mai susva scrie conținutul memoriei în debug_log.txtfile unde îl puteți citi ca în mod normal.NGINX vă permite să colectați jurnale pentru accese bothrutine și erori neașteptate în fișiere separate pentru analiza ulterioarăși depanare. Formatul access_logfile pot fi personalizate pe larg pentru a include informații detaliate aboutrequests cum ar fi numărul de octeți trimiși de la client sau la cerere lungime,și error_log directiva allowsyou pentru a controla nivelul minim de severitate, nivel necesar pentru mesaje pentru a fi conectat.,Atât access_log și error_log directivele poate transmite logentries la un syslog daemon, care poate fi extrem de util pentru dezvoltatorii de lucrucu mai multe servere web.
Și dacă toate aceste caracteristici nu sunt de ajuns pentru tine, puteți scrie chiar error_logentries să o memorie tampon pentru a evita scrierea pe disc și de a reduce performanceimpact pentru servere ocupat.