Android

Konfiguriranje nginx pogreške i dnevnika pristupa

Konfiguriranje kućnog routera

Konfiguriranje kućnog routera

Sadržaj:

Anonim

Nginx je otvoreni izvorni, visoko performansni HTTP i obrnuti proxy poslužitelj koji je odgovoran za rukovanje teretom nekih od najvećih web lokacija na Internetu. Prilikom upravljanja web-poslužiteljima NGINX, jedan od najčešćih zadataka koji ćete obavljati je provjera datoteka dnevnika.

Znati kako konfigurirati i čitati zapisnike vrlo je korisno pri rješavanju problema s poslužiteljem ili aplikacijom jer pružaju detaljne informacije o uklanjanju pogrešaka.

Nginx piše zapise svojih događaja u dvije vrste dnevnika: dnevnici pristupa i dnevnici pogrešaka. Dnevnici pristupa pišu informacije o zahtjevima klijenta, a dnevnici pogrešaka pišu informacije o poslužitelju i problemima s aplikacijama.

Ovaj članak opisuje kako konfigurirati i čitati zapise o pristupu i pogreškama Nginx-a.

Konfiguriranje dnevnika pristupa

Kad god se zahtjev klijenta obrađuje, Nginx generira novi događaj u dnevniku pristupa. Svaki zapis događaja sadrži vremensku oznaku i uključuje razne informacije o klijentu i traženom resursu. Dnevnici pristupa mogu vam pokazati lokaciju posjetitelja, stranicu koju posjećuju, koliko vremena provode na toj stranici i još mnogo toga.

Direktiva log_format omogućava vam definiranje formata zapisanih poruka. Direktiva access_log omogućava i postavlja mjesto datoteke dnevnika i korišteni format.

Najosnovnija sintaksa direktive access_log je sljedeća:

access_log log_file log_format;

Gdje je log_file cijeli put do datoteke zapisa, a log_format je format koji koristi datoteka zapisnika.

Dnevnik pristupa može se omogućiti bilo u bloku direktiva http , server ili location .

Pristupni zapisnik prema zadanom je globalno omogućen u http direktivi unutar glavne konfiguracijske datoteke Nginx.

/etc/nginx/nginx.conf

http {… access_log /var/log/nginx/access.log;… }

Radi bolje održavanja, preporučuje se postavljanje zasebne datoteke dnevnika pristupa za svaki blok poslužitelja. Direktiva access_log postavljena u direktivi server nadjačava onu postavljenu u http (višoj razini) direktivi.

/etc/nginx/conf.d/domain.com.conf

http {… access_log /var/log/nginx/access.log;… server { server_name domain.com access_log /var/log/nginx/domain.access.log;… } }

Ako nije naveden oblik zapisa, Nginx koristi unaprijed definirani kombinirani format koji izgleda ovako:

log_format combined '$remote_addr - $remote_user ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"';

Za promjenu formata zapisnika ili nadjačajte zadanu postavku ili definirajte novu. Na primjer, za definiranje novog formata zapisivanja pod nazivom glavni koji će proširiti kombinirani format s vrijednošću koja prikazuje zaglavlje X-Forwarded-For dodajte sljedeću definiciju u naredbi http ili server :

log_format custom '$remote_addr - $remote_user "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';

Da biste koristili novi format, navedite njegovo ime nakon datoteke zapisa kao što je prikazano u nastavku:

access_log /var/log/nginx/access.log custom;

Dok pristupni dnevnik pruža vrlo korisne informacije. zauzima prostor na disku i može utjecati na performanse poslužitelja. Ako je vašem poslužitelju malo resursa i imate zauzetu web stranicu, možda biste trebali onemogućiti dnevnik pristupa. Da biste to učinili, postavite vrijednost smjernice access_log na off :

access_log off;

Konfiguriranje dnevnika pogrešaka

Nginx u datoteku dnevnika pogrešaka piše poruke o aplikaciji i općenite pogreške poslužitelja. Ako imate pogreške u svojoj web aplikaciji, dnevnik grešaka prvo je mjesto za pokretanje problema s rješavanjem problema.

Direktiva error_log omogućava i postavlja mjesto i razinu ozbiljnosti dnevnika pogreške. Ona poprima sljedeći oblik i može se postaviti unutar bloka http , server ili location :

error_log log_file log_level

Parametar log_level postavlja razinu bilježenja. Ispod su razine navedene po njihovoj ozbiljnosti (od niske do visoke):

  • debug - uklanjanje pogrešaka u porukama. info - informativne poruke. notice - Obavijesti. warn - Upozorenja. error - Pogreške tijekom obrade zahtjeva. crit - Kritična pitanja. Zahtijeva brzu akciju. alert - Upozorenja. Moraju se odmah poduzeti mjere. emerg - Hitna situacija. Sustav je u neupotrebljivom stanju.

Svaka razina dnevnika uključuje više razine. Na primjer, ako postavite razinu prijave da warn , Nginx će također zabilježiti poruke o error , crit , alert i emerg .

Kad parametar log_level nije naveden, log_level se error .

Prema zadanim postavkama, error_log direktiva je definirana u http direktivi unutar glavne datoteke nginx.conf:

/etc/nginx/nginx.conf

http {… error_log /var/log/nginx/error.log;… }

Kao i kod dnevnika pristupa, preporučuje se postavljanje zasebne datoteke dnevnika pogrešaka za svaki blok poslužitelja, koja nadjačava postavke naslijeđene s viših razina.

Na primjer, da postavite dnevnik pogreške domain.com da warn da koristite:

http {… error_log /var/log/nginx/error.log;… server { server_name domain.com error_log /var/log/nginx/domain.error.log warn;… } }

Kad god izmijenite konfiguracijsku datoteku, morate ponovo pokrenuti Nginx uslugu da bi promjene stupile na snagu.

Položaj datoteka

Prema zadanim postavkama za većinu Linux distribucija, kao što su Ubuntu, CentOS i Debian, dnevnici pristupa i pogreške nalaze se u direktoriju /var/log/nginx .

Čitanje i razumijevanje datoteka Nginx dnevnika

Datoteke dnevnika možete otvoriti i raščlaniti standardnim naredbama poput cat , less , grep , cut , awk i tako dalje.

Ovdje je primjer zapisa iz datoteke dnevnika pristupa koja koristi zadani kombinirani format dnevnika Nginx:

192.168.33.1 - - "GET / HTTP/1.1" 200 396 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36"

Raščlanimo što znači svako polje zapisa:

  • $remote_addr - 192.168.33.1 - IP adresa klijenta koji $remote_addr zahtjev. $remote_user - - - Korisnik s $remote_user . Kad korisničko ime nije postavljeno, ovo polje prikazuje - . - - Lokalno vrijeme poslužitelja. "$request" - "GET / - vrsta zahtjeva, put i protokol. $status - 200 - Kôd odgovora poslužitelja. $body_bytes_sent - 396 - Veličina odgovora poslužitelja u bajtovima. "$http_referer" - "-" - URL preporuke. "$http_user_agent" - Mozilla/5.0… - Korisnički agent klijenta (web preglednik).

Pomoću naredbe tail gledajte datoteku dnevnika u stvarnom vremenu:

tail -f access.log

Zaključak

Datoteke dnevnika pružaju vam korisne informacije o problemima poslužitelja i načinu na koji posjetitelji komuniciraju s vašom web stranicom.

Nginx vam omogućuje konfiguriranje dnevnika pristupa i pogrešaka prema vašim potrebama.

Nginx