Я тестирую nginx и хочу выводить переменные в файлы журнала. Как я могу это сделать и какой файл журнала он будет идти (доступ или ошибка).
83
Вы можете отправлять значения переменных nginx через заголовки. Удобно для разработки.
add_header X-uri "$uri";
и вы увидите в заголовках ответа вашего браузера:
X-uri:/index.php
Я иногда делаю это во время местного развития.
Это также удобно, чтобы сообщить вам, выполняется ли подраздел или нет. Просто опрысните это в своих предложениях, чтобы видеть, привыкают ли они.
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt)$ {
add_header X-debug-message "A static file was served" always;
...
}
location ~ \.php$ {
add_header X-debug-message "A php file was used" always;
...
}
Таким образом, посещение URL-адреса, например http://www.example.com/index.php , вызовет последний заголовок, а посещение http://www.example.com/img/my-ducky.png вызовет предыдущий заголовок.
add_header
будет работать только на успешных запросов . В документации говорится, что его можно применять только к ответам с кодами 200, 204, 301, 302 или 304. Поэтому его нельзя использовать для отладки ошибок HTTP.add_header
которому будет возвращаться заголовок независимо от кода ответа. Так, например,add_header X-debug-message "A php file was used" always;
должен работать даже код ошибки 500.Вы можете вернуть простую строку в качестве ответа HTTP:
источник
Вы можете установить пользовательский формат журнала доступа, используя
log_format
директиву, которая регистрирует интересующие вас переменные.источник
error_log
кdebug
так что вы можете увидеть значение переменных , и что блок, которые выполняются. Примерerror_log file.log debug
-
в журнале, но действительно пусты в коде nginx, вы не должны проверять их-
в любое время. Это иногда смущает пользователей.Другой вариант - включить модуль echo при сборке nginx или установить OpenResty, который является nginx в комплекте с набором расширений (например, echo.)
Тогда вы можете просто посыпать свою конфигурацию такими утверждениями, как:
источник
echo_log
директива.