A Lot Can Happen in 3 Seconds | NGINX Conf 2018
Оглавление:
- Настройка журнала доступа
- Настройка журнала ошибок
- Расположение файлов журнала
- Чтение и понимание файлов журнала Nginx
- Вывод
Nginx - это высокопроизводительный HTTP и обратный прокси-сервер с открытым исходным кодом, отвечающий за загрузку некоторых из крупнейших сайтов в Интернете. При управлении веб-серверами NGINX одной из самых частых задач, которые вы выполняете, является проверка файлов журнала.
Знание того, как настраивать и читать журналы, очень полезно при устранении неполадок сервера или приложений, поскольку они предоставляют подробную информацию об отладке.
Nginx записывает записи своих событий в два типа журналов: журналы доступа и журналы ошибок. Журналы доступа записывают информацию о клиентских запросах, а журналы ошибок - информацию о сервере и проблемах приложения.
В этой статье рассказывается, как настроить и прочитать журналы доступа и ошибок Nginx.
Настройка журнала доступа
Всякий раз, когда обрабатывается запрос клиента, Nginx генерирует новое событие в журнале доступа. Каждая запись события содержит метку времени и включает в себя различную информацию о клиенте и запрошенном ресурсе. Журналы доступа могут показать вам местоположение посетителей, страницу, которую они посещают, сколько времени они проводят на странице и многое другое.
Директива
log_format
позволяет вам определять формат регистрируемых сообщений. Директива
access_log
включает и устанавливает местоположение файла журнала и используемый формат.
Основной синтаксис директивы
access_log
выглядит следующим образом:
access_log log_file log_format;
Где
log_file
- полный путь к файлу журнала, а
log_format
- формат, используемый файлом журнала.
Журнал доступа может быть включен либо в
http
,
server
, либо в блок директив
location
.
По умолчанию журнал доступа глобально включен в директиву
http
внутри основного файла конфигурации Nginx.
http {… access_log /var/log/nginx/access.log;… }
Для удобства обслуживания рекомендуется установить отдельный файл журнала доступа для каждого блока сервера. Директива
access_log
установленная в директиве
server
переопределяет ту, которая установлена в директиве
http
(более высокий уровень).
http {… access_log /var/log/nginx/access.log;… server { server_name domain.com access_log /var/log/nginx/domain.access.log;… } }
Если формат журнала не указан, Nginx использует предопределенный комбинированный формат, который выглядит следующим образом:
log_format combined '$remote_addr - $remote_user ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"';
Чтобы изменить формат ведения журнала, либо переопределите настройку по умолчанию, либо определите новый. Например, чтобы определить новый формат ведения журнала с именем main, который расширит объединенный формат значением, показывающим заголовок
X-Forwarded-For
добавьте следующее определение в директиву
http
или
server
:
log_format custom '$remote_addr - $remote_user "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
Чтобы использовать новый формат, укажите его имя после файла журнала, как показано ниже:
access_log /var/log/nginx/access.log custom;
Пока журнал доступа предоставляет очень полезную информацию. занимает место на диске и может повлиять на производительность сервера. Если на вашем сервере недостаточно ресурсов и у вас загруженный веб-сайт, вы можете отключить журнал доступа. Для этого установите для директивы
access_log
значение
off
:
Настройка журнала ошибок
Nginx записывает сообщения об ошибках приложения и общих серверах в файл журнала ошибок. Если вы столкнулись с ошибками в вашем веб-приложении, журнал ошибок - это первое место, с которого можно начать устранение неполадок.
Директива
error_log
включает и устанавливает местоположение и уровень серьезности журнала ошибок. Он принимает следующую форму и может быть установлен в блоке
http
,
server
или
location
:
error_log log_file log_level
Параметр
log_level
устанавливает уровень ведения журнала. Ниже перечислены уровни их серьезности (от низкого до высокого):
-
debug- отладка сообщений.info- информационные сообщения.notice- уведомления.warn- предупреждения.error- ошибки при обработке запроса.crit- критические вопросы. Требует быстрых действий.alert- оповещения. Действие должно быть принято немедленно.emerg- Чрезвычайная ситуация. Система находится в нерабочем состоянии.
Каждый уровень журнала включает в себя более высокие уровни. Например, если вы установите уровень журнала «
warn
, Nginx также будет регистрировать сообщения об
error
,
crit
emerg
и
emerg
.
Если параметр
log_level
не указан, по умолчанию используется
error
.
По умолчанию директива
error_log
определяется в директиве
http
внутри основного файла nginx.conf:
http {… error_log /var/log/nginx/error.log;… }
Как и в случае с журналами доступа, рекомендуется устанавливать отдельный файл журнала ошибок для каждого блока сервера, который переопределяет параметр, унаследованный от более высоких уровней.
Например, чтобы установить журнал ошибок domain.com для
warn
вы должны использовать:
http {… error_log /var/log/nginx/error.log;… server { server_name domain.com error_log /var/log/nginx/domain.error.log warn;… } }
Всякий раз, когда вы изменяете файл конфигурации, вы должны перезапустить службу Nginx, чтобы изменения вступили в силу.
Расположение файлов журнала
По умолчанию в большинстве дистрибутивов Linux, таких как Ubuntu, CentOS и Debian, журналы доступа и ошибок расположены в каталоге
/var/log/nginx
.
Чтение и понимание файлов журнала Nginx
Вы можете открывать и анализировать файлы журнала, используя стандартные команды, такие как
cat
,
less
,
grep
,
cut
,
awk
и так далее.
Вот пример записи из файла журнала доступа, который использует формат журнала объединения Nginx по умолчанию:
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"
Давайте разберемся, что означает каждое поле записи:
-
$remote_addr-192.168.33.1- IP-адрес клиента, сделавшего запрос.$remote_user--- HTTP-аутентифицированный пользователь. Если имя пользователя не установлено, в этом поле отображается-. -- Локальный сервер времени."$request"-"GET /- тип запроса, путь и протокол.$status-200- код ответа сервера.$body_bytes_sent-396- Размер ответа сервера в байтах."$http_referer"-"-"- URL реферала."$http_user_agent"-Mozilla/5.0…- пользовательский агент клиента (веб-браузер).
Используйте команду
tail
для просмотра файла журнала в режиме реального времени:
Вывод
Файлы журнала предоставляют вам полезную информацию о проблемах сервера и о том, как посетители взаимодействуют с вашим сайтом.
Nginx позволяет вам настроить доступ и журналы ошибок в соответствии с вашими потребностями.
NginxТрэйвл Twitter: ошибки и ошибки удаленной учетной записи
Сайт микроблогов становится жертвой розыгрыша, а также случайно удаляет законные учетные записи пользователей.
Настройка ошибки 404 - Не найденные страницы с плагином Bing 404 для Wordpress от Microsoft
Microsoft выпустила новый плагин для блоггеров Wordpress под названием Bing 404 Плагин для Wordpress для улучшения ошибок 404 - страницы не найдены.
Включить ведение журнала установщика Microsoft и расширенное ведение журнала в Windows
Узнайте, как легко включить ведение журнала Microsoft Installer и расширенное ведение журнала в Windows 7/8 с помощью Microsoft Fix Это. Также упоминается расположение файла журнала.







