Я тестирую nginx и хочу вывести переменные в файлы журнала. Как я могу это сделать и в какой файл журнала он попадет (доступ или ошибка).
Вы можете отправлять значения переменных 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 вызовет предыдущий заголовок.
Вы можете вернуть простую строку как HTTP-ответ:
location /
{
return 200 $document_root;
}
Обратите внимание, что вам необходимо посетить страницу, заканчивающуюся на .html
если вы не хотите менять заголовки страницы.
Вы можете установить собственный формат журнала доступа, используя log_format
директива, которая регистрирует интересующие вас переменные.
Другой вариант - включить эхо-модуль когда вы собираете nginx или устанавливаете OpenResty который представляет собой nginx в комплекте с кучей расширений (например, echo.)
Затем вы можете просто добавить в свою конфигурацию такие утверждения, как:
echo "args: $args"