Android

Konfiguration af nginx-fejlen og adgangsloggen

Putting a Webserver (Nginx) in front of your Spring Boot Application | Spring Boot: REST Services

Putting a Webserver (Nginx) in front of your Spring Boot Application | Spring Boot: REST Services

Indholdsfortegnelse:

Anonim

Nginx er en open source, højtydende HTTP og reverse proxy-server, der er ansvarlig for håndtering af belastningen på nogle af de største websteder på Internettet. Når du administrerer NGINX webservere, er en af ​​de hyppigste opgaver, du udfører, at kontrollere logfilerne.

At vide, hvordan man konfigurerer og læser loggerne, er meget nyttigt, når du fejlsøger server- eller applikationsproblemer, da de giver detaljerede fejlfindingsoplysninger.

Nginx skriver poster over sine begivenheder i to typer logfiler: adgangslogfiler og fejllogfiler. Adgangslogger skriver oplysninger om klientanmodninger, og fejllogfiler skriver information om server- og applikationsproblemer.

Denne artikel beskriver, hvordan du konfigurerer og læser Nginx-adgangs- og fejllogfiler.

Konfiguration af adgangsloggen

Hver gang en klientanmodning behandles, genererer Nginx en ny begivenhed i adgangsloggen. Hver hændelsesregistrering indeholder en tidsstempel og indeholder forskellige oplysninger om klienten og den ønskede ressource. Adgangslogfiler kan vise dig placeringen af ​​de besøgende, den side, de besøger, hvor meget tid de bruger på siden og meget mere.

Direktivet log_format giver dig mulighed for at definere formatet for loggede meddelelser. access_log direktivet aktiverer og indstiller placeringen af ​​logfilen og det anvendte format.

Den mest basale syntaks i access_log direktivet er som følger:

access_log log_file log_format;

Hvor log_file er den fulde sti til logfilen, og log_format er det format, der bruges af logfilen.

Adgangsloggen kan aktiveres enten i http , server eller location blok.

Som standard er adgangsloggen globalt aktiveret i http direktivet i den vigtigste Nginx-konfigurationsfil.

/etc/nginx/nginx.conf

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

For bedre vedligeholdelighed anbefales det at indstille en separat adgangsloggfil for hver serverblok. access_log direktivet, der er angivet i access_log tilsidesætter det sæt i http (højere niveau) -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 der ikke er angivet noget logformat, bruger Nginx det foruddefinerede kombinerede format, der ser sådan ud:

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

For at ændre loggingsformatet tilsidesættes enten standardindstillingen eller definerer en ny. For at definere et nyt loggingsformat med navnet hoved, som f.eks. Udvider det kombinerede format med den værdi, der viser X-Forwarded-For overskriften, skal du tilføje følgende definition 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"';

For at bruge det nye format skal du specificere dets navn efter logfilen som vist nedenfor:

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

Mens adgangsloggen indeholder meget nyttige oplysninger. det tager diskplads og kan påvirke serverens ydelse. Hvis din server er lav på ressourcer og du har et travlt websted, kan du muligvis deaktivere adgangsloggen. For at gøre det skal du indstille værdien af access_log direktivet til:

access_log off;

Konfiguration af fejlloggen

Nginx skriver meddelelser om applikationen og generelle serverfejl i fejlloggfilen. Hvis du oplever fejl i din webapplikation, er fejlloggen det første sted at starte med fejlfindingsproblemer.

error_log aktiverer og indstiller placeringen og sværhedsgraden af ​​fejlloggen. Det tager følgende form og kan indstilles i en http , server eller location :

error_log log_file log_level

log_level parameteren indstiller niveauet for logging. Nedenfor er niveauer angivet efter deres sværhedsgrad (fra lav til høj):

  • debug - Fejlsøgning af meddelelser. info - Informationsmeddelelser. notice - Meddelelser. warn - Advarsler. error - Fejl under behandling af en anmodning. crit - Kritiske spørgsmål. Kræver en hurtig handling. alert - Alarmer. Der skal straks træffes handling. emerg - nødsituation. Systemet er i en ubrugelig tilstand.

Hvert logniveau inkluderer de højere niveauer. For eksempel, hvis du indstiller logniveauet til at warn , vil Nginx også logge error , crit , alert og emerg meddelelser.

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

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

/etc/nginx/nginx.conf

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

Samme som med adgangslogler anbefales det at indstille en separat fejlloggfil for hver serverblok, der tilsidesætter indstillingen, der er arvet fra de højere niveauer.

For at indstille domæne.com's fejllogg for at warn du f.eks.:

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 ændrer konfigurationsfilen, skal du genstarte Nginx-tjenesten for at ændringerne får virkning.

Logfilernes placering

Som standard på de fleste Linux-distributioner, som Ubuntu, CentOS og Debian, findes adgangs- og /var/log/nginx biblioteket /var/log/nginx .

Læsning og forståelse af Nginx-logfiler

Du kan åbne og analysere logfilerne ved hjælp af standardkommandoer som cat , less , grep , cut , awk osv.

Her er et eksempel fra den adgangsloggfil, der bruger Nginx-logformatet 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"

Lad os fordele, hvad hvert felt i posten betyder:

  • $remote_addr - 192.168.33.1 - IP-adressen til den klient, der anmoder om. $remote_user - - - HTTP godkendt bruger. Når brugernavnet ikke er angivet, viser dette felt - . - - Lokal servertid. "$request" - "GET / - Anmodningstypen, stien og protokollen. $status - 200 - Serverens responskode. $body_bytes_sent - 396 - Størrelsen på serverrespons i bytes. "$http_referer" - "-" - Henvisningens URL. "$http_user_agent" - Mozilla/5.0… - Klientens brugeragent (webbrowser).

Brug tail til at se logfilen i realtid:

tail -f access.log

Konklusion

Logfiler giver dig nyttige oplysninger om serverproblemer og hvordan besøgende interagerer med dit websted.

Nginx giver dig mulighed for at konfigurere adgangs- og fejllogfilerne efter dine behov.

nginx