Логи error_log и access_log в Nginx

Thank you for reading this post, don't forget to subscribe!

Фай­лы логов — пер­вое место, где нуж­но искать ошиб­ки. Осо­бен­но если это каса­ет­ся веб-сер­ве­ра. В Nginx все­го два основ­ных лога: error_log и access_log.

Лог ошибок error_log

Логи­ро­ва­ние оши­бок Nginx про­ис­хо­дит в опре­де­лен­ный файл, stderr или syslog. Он соби­ра­ет все ошиб­ки, кото­рые про­изо­шли во вре­мя рабо­ты веб-сер­ве­ра. По умол­ча­нию он вклю­чен глобально:

# Запи­сы­ва­ют­ся толь­ко ошиб­ки в файл по ука­зан­но­му пути

Для сбо­ра толь­ко опре­де­лен­ных оши­бок необ­хо­ди­мо раз­ме­стить дирек­ти­ву в сек­ции http, server, stream или location. А так мож­но логи­ро­вать толь­ко кри­ти­че­ские ошиб­ки и сиг­на­лы тревоги:

# Запи­сы­ва­ют­ся ошиб­ки уров­ня warn, error crit, alert, emerg

Лог доступа access_log

Лог досту­па Nginx по умол­ча­нию раз­ме­щен в дирек­то­рии logs/access.log. В него запи­сы­ва­ют­ся дан­ные о запро­сах поль­зо­ва­те­лей, как толь­ко эти запро­сы обра­бо­та­ны. Для изме­не­ния дирек­то­рии рас­по­ло­же­ния лога исполь­зу­ет­ся дирек­ти­ва access_log:

# Исполь­зу­ет­ся ком­би­ни­ро­ван­ный формат

В рас­ши­рен­ном виде access_log мож­но настро­ить по сво­им требованиям:

[codesyntax lang="php"]

[/codesyntax]

Зада­ет­ся поль­зо­ва­тель­ский фор­мат с запи­сью вре­ме­ни под­клю­че­ния, TTFB, TTLB, вре­ме­ни обра­бот­ки запроса

Так­же мож­но исклю­чить ненуж­ную инфор­ма­цию из лога:

[codesyntax lang="php"]

[/codesyntax]

Исклю­ча­ет запро­сы к HTTP со ста­ту­сом 2ХХ (успеш­но) и 3ХХ (реди­рект)

Запись в syslog

Стан­дарт­ная для UNIX-систем ути­ли­та syslog может соби­рать логи и раз­лич­ные сооб­ще­ния раз­ных про­цес­сов на одном сервере:

# Пере­на­прав­ля­ет инфор­ма­цию в syslog

Дирек­ти­ва server ука­зы­ва­ет адрес сер­ве­ра (здесь IPv6) и порт. А facility — спе­ци­фи­че­ские пара­мет­ры про­грам­мы: auth, authpriv, daemon, cron, ftp, lpr, kern, mail, news, syslog,user, uucp, local0 ... local7.

Включение режима debug

При необ­хо­ди­мо­сти мож­но вклю­чить Nginx debug-режим запи­си логов, кото­рый обес­пе­чи­ва­ет рас­ши­рен­ную инфор­ма­цию и поле­зен при реше­нии серьез­ных проблем:

# Мож­но вклю­чить толь­ко для нуж­ной сек­ции или отдель­ных кли­ен­тов соединений