Android

Konfigurere nginx-feilen og tilgangsloggen

Настройка HTTPS на Synology NAS с помощью Let's Encrypt | Synology

Настройка HTTPS на Synology NAS с помощью Let's Encrypt | Synology

Innholdsfortegnelse:

Anonim

Nginx er en åpen kildekode, høy ytelse HTTP og reverse proxy-server som er ansvarlig for å håndtere belastningen på noen av de største nettstedene på Internett. Når du administrerer NGINX webservere, er en av de hyppigste oppgavene du utfører å sjekke loggfilene.

Å vite hvordan du konfigurerer og leser loggene er veldig nyttig når du feilsøker server- eller applikasjonsproblemer, ettersom de gir detaljert feilsøkingsinformasjon.

Nginx skriver poster over hendelsene i to typer logger: tilgangslogger og feillogger. Tilgangslogger skriver informasjon om klientforespørsler, og feillogger skriver informasjon om server- og applikasjonsproblemer.

Denne artikkelen beskriver hvordan du konfigurerer og leser Nginx tilgangs- og feillogger.

Konfigurere tilgangsloggen

Hver gang en klientforespørsel blir behandlet, genererer Nginx en ny hendelse i tilgangsloggen. Hver hendelsesrekord inneholder en tidsstempel og inneholder forskjellig informasjon om klienten og den forespurte ressursen. Tilgangslogger kan vise deg hvor besøkende er, siden de besøker, hvor mye tid de bruker på siden og mye mer.

Direktivet log_format lar deg definere formatet til loggførte meldinger. access_log direktivet aktiverer og angir plasseringen av loggfilen og det brukte formatet.

Den mest grunnleggende syntaks for access_log direktivet er som følger:

access_log log_file log_format;

Hvor log_file er hele banen til loggfilen, og log_format er formatet som brukes av loggfilen.

Tilgangsloggen kan aktiveres enten i http , server eller location blokkerer.

Som standard er tilgangsloggen globalt aktivert i http direktivet i Nginx hovedkonfigurasjonsfil.

/etc/nginx/nginx.conf

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

For bedre vedlikehold anbefales det å sette en egen tilgangsloggfil for hver serverblokk. access_log direktivet satt i server overstyrer det settet i http (høyere nivå) -direktivet.

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

Hvis det ikke er spesifisert noe loggformat, bruker Nginx det forhåndsdefinerte kombinerte formatet som ser slik ut:

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

For å endre loggingsformatet overstyrer du enten standardinnstillingen eller definerer en ny. For å definere et nytt loggformat som heter hoved, som for eksempel utvider det kombinerte formatet med verdien som viser X-Forwarded-For overskriften, legger du til følgende definisjon i http eller server :

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

Hvis du vil bruke det nye formatet, angir du navnet etter loggfilen som vist nedenfor:

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

Mens tilgangsloggen gir veldig nyttig informasjon. det tar diskplass og kan påvirke serverytelsen. Hvis serveren din har lite ressurser og har et travelt nettsted, kan det være lurt å deaktivere tilgangsloggen. For å gjøre det, sett verdien av access_log direktivet til:

access_log off;

Konfigurere feilloggen

Nginx skriver meldinger om applikasjonen og generelle serverfeil i feilloggfilen. Hvis du opplever feil i webapplikasjonen din, er feilloggen det første stedet du begynner med feilsøkingsproblemer.

error_log aktiverer og angir plasseringen og alvorlighetsgraden til feilloggen. Den tar følgende form og kan settes i en http , server eller location :

error_log log_file log_level

log_level parameteren angir nivået for logging. Nedenfor er nivåer oppført etter deres alvorlighetsgrad (fra lav til høy):

  • debug - Feilsøke meldinger. info - Informasjonsmeldinger. notice - Merknader. warn - Advarsler. error - Feil under behandling av en forespørsel. crit - Kritiske spørsmål. Krever en rask handling. alert - Varsler. Handling må treffes umiddelbart. emerg - Beredskapssituasjon. Systemet er i en ubrukelig tilstand.

Hvert loggnivå inkluderer de høyere nivåene. Hvis du for eksempel angir loggenivået til å warn , vil Nginx også logge error , crit , emerg og emerg meldinger.

Når log_level parameteren ikke er spesifisert, er den som standard error .

Som standard er error_log direktivet definert i http direktivet i hovednginx.conf-filen:

/etc/nginx/nginx.conf

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

Samme som med tilgangslogger, anbefales det å sette en egen feilloggfil for hver serverblokk, som overstyrer innstillingen som er arvet fra de høyere nivåene.

For å sette domene.coms feillogg for å warn , vil du for eksempel bruke:

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

Hver gang du endrer konfigurasjonsfilen, må du starte Nginx-tjenesten på nytt for at endringene skal tre i kraft.

Plassering av loggfilene

Som standard på de fleste Linux-distribusjoner, som Ubuntu, CentOS og Debian, er tilgangs- og feillogger lokalisert i /var/log/nginx katalogen.

Lese og forstå Nginx-loggfilene

Du kan åpne og analysere loggfilene ved å bruke standardkommandoer som cat , less , grep , cut , awk , og så videre.

Her er et eksempel fra tilgangsloggfilen som bruker Nginx-loggformatet som standard:

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"

La oss fordele hva hvert felt i posten betyr:

  • $remote_addr - 192.168.33.1 - IP-adressen til klienten som ber om forespørsel. $remote_user - - - HTTP Autentisert bruker. Når brukernavnet ikke er angitt, viser dette feltet - . - - Lokal servertid. "$request" - "GET / - Forespørselstypen, banen og protokollen. $status - 200 - Serverens responskode. $body_bytes_sent - 396 - Størrelsen på serverrespons i byte. "$http_referer" - "-" - Henvisningsadressen. "$http_user_agent" - Mozilla/5.0… - Brukeragenten til klienten (nettleser).

Bruk tail å se loggfilen i sanntid:

tail -f access.log

Konklusjon

Loggfiler gir deg nyttig informasjon om serverproblemer og hvordan besøkende samhandler med nettstedet ditt.

Nginx lar deg konfigurere tilgangs- og feilloggene i henhold til dine behov.

Nginx