Android

Nginx-virheen ja käyttölokin määrittäminen

[#138] NGINX jako podstawowy serwer WWW dla usługi hostingowej - Maciej Kupiec

[#138] NGINX jako podstawowy serwer WWW dla usługi hostingowej - Maciej Kupiec

Sisällysluettelo:

Anonim

Nginx on avoimen lähdekoodin tehokas HTTP- ja käänteinen välityspalvelin, joka vastaa joidenkin Internetin suurimpien sivustojen kuorman käsittelystä. Kun hallitset NGINX-verkkopalvelimia, yksi yleisimmistä suoritettavista tehtävistä on lokitiedostojen tarkistaminen.

Lokien määrittämisen ja lukemisen tuntemus on erittäin hyödyllistä, kun vianetsintään palvelin- tai sovellusongelmia, koska ne tarjoavat yksityiskohtaisia ​​virheenkorjaustietoja.

Nginx kirjoittaa tapahtumien tietueet kahta tyyppistä lokia: käyttölokeihin ja virhelokeihin. Käyttölokit kirjoittavat tietoja asiakaspyynnöistä, ja virhelokit kirjoittavat tietoja palvelin- ja sovellusongelmista.

Tässä artikkelissa kuvataan, kuinka Nginx-käyttö- ja virhelokit määritetään ja luetaan.

Käyttölokin määrittäminen

Aina asiakaspyyntöä käsitellään, Nginx luo uuden tapahtuman käyttölokiin. Jokainen tapahtumatietue sisältää aikaleiman ja sisältää erilaisia ​​tietoja asiakkaasta ja pyydetystä resurssista. Käyttölokit voivat näyttää sinulle kävijöiden sijainnin, käymänsä sivun, kuinka paljon aikaa he viettävät sivulle ja paljon muuta.

log_format -direktiivin avulla voit määrittää kirjattujen viestien muodon. access_log -direktiivi mahdollistaa ja asettaa lokitiedoston sijainnin ja käytetyn muodon.

access_log -direktiivin perusteellisin syntaksi on seuraava:

access_log log_file log_format;

Missä log_file on täydellinen polku lokitiedostoon ja log_format on lokitiedoston käyttämä muoto.

Käyttöloki voidaan ottaa käyttöön joko http , server tai location lohkossa.

Oletuksena käyttöloki on globaalisti käytössä http direktiivissä Nginx-päämääritystiedoston sisällä.

/etc/nginx/nginx.conf

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

Huollettavuuden parantamiseksi on suositeltavaa asettaa erillinen käyttölokitiedosto kullekin palvelinlohkolle. server asetettu access_log -direktiivi ohittaa http (korkeamman tason) direktiivissä asetetun access_log .

/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;… } }

Jos lokimuotoa ei määritetä, Nginx käyttää ennalta määritettyä yhdistettyä muotoa, joka näyttää tältä:

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

Lokimuodon muuttaminen joko ohittaa oletusasetuksen tai määrittää uuden. Esimerkiksi määritelläksesi uuden kirjausmuodon, jonka nimi on main, joka laajentaa yhdistettyä muotoa arvolla, joka näyttää X-Forwarded-For otsikon, lisää seuraava määritelmä http tai server :

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

Jos haluat käyttää uutta muotoa, määritä sen nimi lokitiedoston jälkeen seuraavasti:

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

Vaikka käyttöloki tarjoaa erittäin hyödyllistä tietoa. se vie levytilaa ja voi vaikuttaa palvelimen suorituskykyyn. Jos palvelimellasi on vähän resursseja ja sinulla on kiireinen verkkosivusto, saatat haluta poistaa käyttölokin käytöstä. Aseta se access_log -direktiivin arvo off :

access_log off;

Virhelokin määrittäminen

Nginx kirjoittaa viestit sovellus- ja palvelinvirheistä virheloki-tiedostoon. Jos Web-sovelluksessasi on virheitä, virheloki on ensimmäinen paikka aloittaa vianetsintäongelmien ratkaiseminen.

error_log -direktiivi mahdollistaa ja asettaa error_log sijainnin ja vakavuusasteen. Se on seuraavassa muodossa ja se voidaan asettaa http , server tai location :

error_log log_file log_level

Parametri log_level asettaa log_level . Alla on lueteltu tasot vakavuuden mukaan (matalasta korkeaan):

  • debug - Viestien virheenkorjaus. info - informatiiviset viestit. notice - ilmoitukset. warn - Varoitukset. error - Virheet pyynnön käsittelyssä. kritiikki - kriittiset kysymykset. Vaatii nopean toiminnan. alert - hälytykset. Toimenpiteet on toteutettava välittömästi. emerg - hätätilanne. Järjestelmä on käyttökelvottomassa tilassa.

Jokainen lokitaso sisältää korkeammat tasot. Jos esimerkiksi asetat lokitason warn , Nginx kirjaa myös error , emerg , alert ja esiin emerg viestit.

Kun parametria log_level ei ole määritetty, se on error .

Oletuksena error_log -direktiivi on määritelty http direktiivissä pääasiallisen nginx.conf-tiedoston sisällä:

/etc/nginx/nginx.conf

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

Samoin kuin käyttölokeissa, on suositeltavaa asettaa jokaiselle palvelinlohkolle erillinen virhelokitiedosto, joka ohittaa korkeammilta tasoilta perityt asetukset.

Jos esimerkiksi asetat domain.com-virhelokin warn käyttäisit seuraavaa:

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

Aina kun muutat asetustiedostoa, sinun on käynnistettävä Nginx-palvelu uudelleen, jotta muutokset tulevat voimaan.

Lokitiedostojen sijainti

Oletuksena useimmissa Linux-jakeluissa, kuten Ubuntu, CentOS ja Debian, käyttö- ja virhelokit sijaitsevat hakemistossa /var/log/nginx .

Nginx-lokitiedostojen lukeminen ja ymmärtäminen

Voit avata ja jäsentää lokitiedostoja käyttämällä tavallisia komentoja, kuten cat , less , grep , cut , awk ja niin edelleen.

Tässä on esimerkki käyttölokitiedostosta, joka käyttää oletusyhdistelmän Nginx-lokimuotoa:

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"

Tarkastellaan sitä, mitä tietueen jokainen kenttä tarkoittaa:

  • $remote_addr - 192.168.33.1 - pyynnön esittäneen asiakkaan IP-osoite. $remote_user - - - HTTP-todennettu käyttäjä. Kun käyttäjänimeä ei ole asetettu, tässä kentässä näkyy - . - - Paikallinen palvelimen aika. "$request" - "GET / - pyynnön tyyppi, polku ja protokolla. $status - 200 - Palvelimen vastauskoodi. $body_bytes_sent - 396 - Palvelimen vastauksen koko tavuina. "$http_referer" - "-" - viittauksen URL-osoite. "$http_user_agent" - Mozilla/5.0… - Asiakkaan käyttäjäagentti (verkkoselain).

Katso tail -komennolla lokitiedostoa reaaliajassa:

tail -f access.log

johtopäätös

Lokitiedostot tarjoavat sinulle hyödyllisiä tietoja palvelinongelmista ja siitä, kuinka kävijät ovat vuorovaikutuksessa verkkosivustosi kanssa.

Nginx antaa sinun määrittää käyttö- ja virhelokit tarpeidesi mukaan.

nginx