Android

Konfigurera nginx-felet och åtkomstloggen

Nginx + MySQL + phpMyAdmin Installation: Openmediavault Raspberry Pi 3

Nginx + MySQL + phpMyAdmin Installation: Openmediavault Raspberry Pi 3

Innehållsförteckning:

Anonim

Nginx är en öppen källkod, högpresterande HTTP och reverse proxyserver som ansvarar för att hantera belastningen på några av de största webbplatserna på Internet. När du hanterar NGINX webbservrar är en av de vanligaste uppgifterna du utför att kontrollera loggfilerna.

Att veta hur man konfigurerar och läser loggarna är mycket användbart vid felsökning av server- eller applikationsproblem eftersom de ger detaljerad felsökningsinformation.

Nginx skriver poster över sina händelser i två typer av loggar: åtkomstloggar och felloggar. Åtkomstloggar skriver information om klientförfrågningar och felloggar skriver information om servern och applikationsproblem.

Den här artikeln beskriver hur du konfigurerar och läser Nginx åtkomst- och felloggar.

Konfigurera åtkomstloggen

När en klientbegäran behandlas genererar Nginx en ny händelse i åtkomstloggen. Varje händelsepost innehåller en tidsstämpel och innehåller olika information om klienten och den begärda resursen. Åtkomstloggar kan visa besökarnas plats, sidan de besöker, hur mycket tid de spenderar på sidan och mycket mer.

Direktivet log_format låter dig definiera formatet för inloggade meddelanden. Direktivet access_log möjliggör och ställer in loggfilen och det format som används.

Den mest grundläggande syntaxen i access_log direktivet är följande:

access_log log_file log_format;

Där log_file är den fulla sökvägen till loggfilen och log_format är det format som används av loggfilen.

Åtkomstloggen kan aktiveras antingen i http , server eller platsdirektiv.

Som standard är åtkomstloggen globalt aktiverad i http direktivet i Nginx-huvudfilen.

/etc/nginx/nginx.conf

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

För bättre underhåll, rekommenderas det att ange en separat åtkomstloggfil för varje serverblock. access_log direktivet som är inställt i serordirektivet åsidosätter det som i setet http (högre nivå).

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

Om inget loggformat anges använder Nginx det fördefinierade kombinerade formatet som ser ut så här:

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

För att ändra loggformatet åsidosätter du antingen standardinställningen eller definierar en ny. Till exempel för att definiera ett nytt loggformat med namnet main som kommer att utöka det kombinerade formatet med värdet som visar X-Forwarded-For rubriken lägg till följande definition i http eller serverdirektivet:

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

Om du vill använda det nya formatet anger du dess namn efter loggfilen som visas nedan:

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

Medan åtkomstloggen ger mycket användbar information. det tar utrymme på hårddisken och kan påverka serverns prestanda. Om din server är låg på resurser och du har en upptagen webbplats kanske du vill inaktivera åtkomstloggen. För att göra det ställer du in värdet på access_log direktivet:

access_log off;

Konfigurera felloggen

Nginx skriver meddelanden om applikationen och allmänna serverfel i felloggfilen. Om du upplever fel i din webbapplikation är felloggen den första platsen att börja vid felsökningsproblem.

Direktivet error_log och ställer in platsens och svårighetsnivån för felloggen. Den tar följande form och kan ställas in i ett http , server eller platsblock:

error_log log_file log_level

Parameteren log_level ställer in loggningsnivån. Nedan listas nivåer efter deras svårighetsgrad (från låg till hög):

  • debug - Felsökningsmeddelanden. info - Informationsmeddelanden. notice - Meddelanden. warn - Varningar. error - Fel vid bearbetning av en begäran. crit - Kritiska frågor. Kräver en snabb åtgärd. alert - Varningar. Åtgärder måste vidtas omedelbart. emerg - emerg . Systemet är i ett oanvändbart tillstånd.

Varje loggnivå inkluderar de högre nivåerna. Om du till exempel ställer in loggnivån för att warn , kommer Nginx också att logga meddelanden om error , crit , alert och emerg .

När parametern log_level inte är angiven, är den som standard error .

Som standard error_log direktivet i http direktivet i huvudnginx.conf-filen:

/etc/nginx/nginx.conf

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

Samma som med åtkomstloggar rekommenderas det att ange en separat felloggfil för varje serverblock, som åsidosätter inställningen som ärvs från de högre nivåerna.

Om du till exempel vill ställa in domain.coms fellogg så att du warn skulle du använda:

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

När du ändrar konfigurationsfilen måste du starta om Nginx-tjänsten för att ändringarna ska träda i kraft.

Loggfilernas placering

Som standard på de flesta Linux-distributioner, som Ubuntu, CentOS och Debian, finns /var/log/nginx i /var/log/nginx katalogen.

Läsa och förstå Nginx-loggfilerna

Du kan öppna och analysera loggfilerna med hjälp av standardkommandon som cat , less , grep , cut , awk , och så vidare.

Här är ett exempel rekord från åtkomstloggfilen som använder 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"

Låt oss dela upp vad varje fält i posten betyder:

  • $remote_addr - 192.168.33.1 - IP-adressen till klienten som begär begäran. $remote_user - - - HTTP Autentiserad $remote_user . När användarnamnet inte är inställt, visar detta fält - . - - Lokal servertid. "$request" - "GET / - Begäran typ, sökväg och protokoll. $status - 200 - Serverns svarskod. $body_bytes_sent - 396 - Storleken på serverns svar i byte. "$http_referer" - "-" - Hänvisningens URL. "$http_user_agent" - Mozilla/5.0… - Klientens användaragent (webbläsare).

Använd tail att titta på loggfilen i realtid:

tail -f access.log

Slutsats

Loggfiler ger dig användbar information om serverproblem och hur besökare interagerar med din webbplats.

Med Nginx kan du konfigurera åtkomst- och felloggarna efter dina behov.

nginx