Ссылка на исходный текст: Блог Хэ Сяодуна
Если вы хотите получить статистику исходной информации о посещении веб-сайта, вы можете использовать PHP для получения информации, записать ее в виде базы данных или напрямую использовать журнал доступа, предоставленный nginx, для записи сведений о посещении веб-сайта. Администраторы могут анализировать источник посещения пользователей и сведения о поведении пользователей при посещении, анализируя журнал доступа nginx. Доступ к странице сайта и т. Д. Кроме того, в самом nginx также есть журналы ошибок, облегчающие эксплуатацию и обслуживание персонала для отладки nginx. Для ведения журнала поведения, если каждая операция на диске будет потреблять больше ресурсов. Исходя из этой ситуации, буфер журнала nginx может быть открыт. Когда буфер заполнен или регулярно записывается, пришло время снова записать данные в журнал.
Журнал доступа
Nginx записывает информацию о запросах клиентов в журнал доступа сразу после обработки запросов. По умолчанию биты журнала доступа журналы/По умолчанию биты журнала доступа журналы/ В журнале информация записывается в заранее определенном комбинированном формате.
http {
log_format geoproxy
'[$time_local] $remote_addr '
'$realip_remote_addr $remote_user '
'$request_method $server_protocol '
'$scheme $server_name $uri $status '
'$request_time $body_bytes_sent '
'$geoip_city_country_code3 $geoip_region '
'"$geoip_city" $http_x_forwarded_for '
'$upstream_status $upstream_response_time '
'"$http_referer" "$http_user_agent"';
...
}Эта конфигурация журнала, названная geoproxy, использует множество переменных nginx для демонстрации функции ведения журнала nginx. Подробно объясните конкретное значение каждой переменной в параметрах конфигурации:
Когда пользователь инициирует запрос, время сервера записывается $time_local , $удаленный пользователь Значение – это имя пользователя, авторизованное базовым органом.
Для обработки nginx geoip_proxy и реальный ip_header IP – адрес открытого соединения и IP-адрес клиента инструкции;
Затем запишите метод HTTP-запроса $request_method Соглашение $server_protocol И HTTP-метод $схема:http или https ;
И, конечно же, имя сервера. $имя_сервера URI кода состояния запроса и ответа;
В дополнение к основной информации, есть также некоторые статистические данные о результатах: включая миллисекундное время обработки запроса $request_time Размер блока данных ответа сервера $body_bytes_sent ; Кроме того, страна, в которой находится клиент $geoip_city_country_code 3 Область $geoip_регион И городская информация $geoip_city
переменная $http_x_forwarded_for Используется для записи запросов, инициированных другими прокси-серверами X-Forwarded-For Новости заголовка;
вверх по течению Некоторые данные в модуле также регистрируются: код состояния ответа прокси-сервера $upstream_status Время установления связи и получения последнего байта тела ответа от вышестоящего сервера $upstream_response_time Время установления связи и вышестоящего сервера $upstream_connect_time Время для установления связи и первый байт из заголовка восходящего ответа $upstream_header_time 。
Источник запроса $http_referer И агент пользователя $http_user_agent Это также может быть записано в журнале.
Функция ведения журнала nginx очень мощная и гибкая. Следует отметить, что: Используется для определения форматов журналов log_format Инструкции применяются только к http В инструкции уровня блока все значения времени измеряются в миллисекундах с разрешением в миллисекунды. 。
Конфигурация журнала в этом формате приведет к созданию следующих типов журналов:
[25/Feb/2019:16:20:42 +0000] 10.0.1.16 192.168.0.122 Derek GET HTTP/1.1 http www.example.com / 200 0.001 370 USA MI "Ann Arbor" - 200 0.001 "-" "curl/7.47.0"
Если вам нужно использовать эту конфигурацию журнала, вам необходимо использовать ее в сочетании access_log Директива access_log Инструкции получите каталог журнала и имя конфигурации, используемое в качестве параметров:
server {
access_log /var/log/nginx/access.log geoproxy;
...
}журнал доступа Он может использоваться в нескольких контекстах, и каждый контекст может определять свой собственный каталог журнала и формат записи журнала.
Вывод: Модуль журнала в nginx позволяет настраивать форматы журналов для различных сценариев для просмотра различных файлов журналов.
На практике очень полезно настраивать разные журналы для разных контекстов. Содержимое журнала может быть простым или вся необходимая информация может быть записана подробно. Не только это, но и содержимое журнала также поддерживает текст. Он также может записывать данные в формате JSON и XML. Фактически, журналы nginx помогают вам понять информацию о трафике сервера, использовании клиента и источнике клиента. Кроме того, журналы доступа могут помочь вам найти ответы и проблемы, связанные с вышестоящими серверами или конкретными URI; они также полезны для тестирования, которое можно использовать для анализа условий трафика и моделирования реальных сценариев взаимодействия с пользователем. Журнал играет незаменимую роль в устранении неполадок, отладке, анализе приложений и корректировке бизнеса.
Журнал ошибок
Чтобы точно найти журналы ошибок nginx, используйте встроенный error_log Инструкция определяет каталог журнала ошибок и уровень записи журнала ошибок, который настраивается следующим образом:
error_log /var/log/nginx/error.log warn;
журнал ошибок Для настройки инструкции требуется необходимый каталог журнала и необязательный параметр уровня ошибок. за исключением если Внешняя инструкция, журнал ошибок Инструкции могут использоваться во всех контекстах. Уровни журнала ошибок включают в себя: Отладка, информация, уведомление, предупреждение, ошибка, критика, предупреждение и предупреждение. Данные журналы Порядок ранжирования заключается в записи от наименьшего до наиболее строгого порядка ранжирования журнала. Обратите внимание, что отладка Журнал При компиляции сервера nginx возьмите его с собой --with-debug Идентичность может быть использована только.
При возникновении ошибки конфигурации сервера сначала необходимо просмотреть журнал ошибок, чтобы найти проблему. Журнал ошибок Это также мощный инструмент для определения местоположения серверов приложений, таких как службы FastCGI. С помощью журнала ошибок мы можем отлаживать ошибку подключения рабочего процесса, выделение памяти, IP-адрес клиента и сервер приложений. Формат журнала ошибок не поддерживает пользовательский формат журнала Но он также записывает текущее время, уровень журнала и конкретную информацию.
Будьте осторожны: Настройки по умолчанию для журналов ошибок применяются глобально. Чтобы осветить это, пожалуйста журнал ошибок Инструкции размещены на главной контекст конфигурации (верхнего уровня). журнал ошибок Функция указания нескольких инструкций на одном и том же уровне конфигурации была добавлена в NGINX с открытым исходным кодом версии 1.5.2.
Отправка журналов на Единый сервер через системный журнал
Поскольку больше нет необходимости записывать журнал в каталог на диске, а отправлять его на сервер единого журнала, исходная часть каталога может быть заменена IP-адресом сервера. Конфигурация выглядит следующим образом:
error_log syslog:server=10.0.1.42 debug; access_log syslog:server=10.0.1.42,tag=nginx,severity=info geoproxy; #error_log server=unix:/var/log/nginx.sock debug; #access_log syslog:server=[2001:db8::1]:1234,facility=local7,tag=nginx,severity=info;
журнал ошибок и журнал доступа Директива системный журнал Параметры следуют за двоеточиями : И некоторые параметры параметров. В том числе: Требуется сервер Тег указывает IP, DNS-имя или сокет UNIX, который необходимо подключить. Вы можете поиграть с высококачественными аннотациями выше.
Необязательными параметрами являются объект 、 серьезность 、 тег :
сервер Параметр получает IP-адрес или DNS-имя с портом; по умолчанию используется порт UDP 514.
объект Настройка параметров системный журнал Типы объект Значение по умолчанию является одним из 23 значений, определенных стандартом RFC системного журнала local7 。 Другие возможные значения: auth , authpriv , демон , cron , ftp , лнр , керн , почта , новости , системный журнал , пользователь , uucp , local0 ... местный 7
тег Параметр представляет заголовок, отображаемый в файле журнала. Значение по умолчанию равно nginx 。
серьезность Установите серьезность сообщения по умолчанию информация Журнал уровней.
Буфер журнала
Когда система находится в состоянии загрузки, буфер журнала включен, чтобы уменьшить блокировку рабочего процесса nginx. Большое количество операций чтения и записи с диска и использование ресурсов процессора также являются огромным потреблением ресурсов сервера. Буферизация данных журнала в памяти может быть небольшим инструментом оптимизации. буфер Параметрическое значение – это размер буфера. Функция заключается в том, что когда буфер заполнится, журнал будет записан в файл. смыть Параметрическое значение-это самое длительное время, в течение которого журнал в буфере хранится в буфере. Функция заключается в том, что когда журнал в буфере превысит максимальное время кэширования, он также будет записан в файл. Недостаток заключается в том, что запись журнала в файл журнала немного задерживается, и буфер журнала следует отключить при отладке в режиме реального времени. 。 Конфигурация выглядит следующим образом:
http {
access_log /var/log/nginx/access.log main buffer=32k flush=1m;
}Ссылка на ссылку:
- кулинарная книга nginx
- Журнал конфигурации Nginx
Как обычно, я рекомендую вам волну курсов, я видел, качество очень высокое – > сходите посмотреть.