Вопрос по access_log
CoDDoC
coddoc на mail.ru
Пт Фев 9 09:38:32 UTC 2018
Доброе время суток!
nginx/1.13.8
Случайно обнаружилась непонятка.
Конфиг 1:
http {
....
log_format f1 '[$time_local - 1]';
log_format f2 '[$time_local - 2]';
access_log /var/log/nginx/1.log f1;
access_log /var/log/nginx/2.log f2;
server {
listen ...
root ....
index .....
# access_log /var/log/nginx/1.log f1;
# access_log /var/log/nginx/2.log f2;
}
}
Делаем запрос и получаем ожидаемое: запись в ОБА файла.
-------------------------------------------------------------------------------------------
Теперь так.
Конфиг 2:
http {
....
log_format f1 '[$time_local - 1]';
log_format f2 '[$time_local - 2]';
access_log /var/log/nginx/1.log f1;
# access_log /var/log/nginx/2.log f2;
server {
listen ...
root ....
index .....
# access_log /var/log/nginx/1.log f1;
access_log /var/log/nginx/2.log f2;
}
}
И запись ТОЛЬКО во второй файл.
-------------------------------------------------------------------------------------------
Конфиг 3:
http {
....
log_format f1 '[$time_local - 1]';
log_format f2 '[$time_local - 2]';
# access_log /var/log/nginx/1.log f1;
# access_log /var/log/nginx/2.log f2;
server {
listen ...
root ....
index .....
access_log /var/log/nginx/1.log f1;
access_log /var/log/nginx/2.log f2;
}
}
Опять все ожидаемо, запись в оба файла.
-------------------------------------------------------------------------------------------
В server / location похожая ситуация:
server {
listen ...
root ...
index ...
....
access_log /var/log/nginx/1.log f1;
........
# Все, что не совпало с разрешенными
location "" {
return 404;
}
error_page 404 = @err404;
location @err404 {
keepalive_timeout 0;
rewrite ^ /err/404.html break;
access_log /var/log/nginx/2.log f2;
}
}
Ожидаемо: бредовый запрос должен отметиться и в 1.log, и в 2.log
По факту: если работает "access_log /var/log/nginx/2.log f2;", соответственно, не работает "access_log /var/log/nginx/1.log f1;"
Правильный запрос приходит в 1.log, бредовый - в 2.log
Если "access_log /var/log/nginx/2.log f2;" отключить, тогда в 1.log приходят все запросы, и правильные, и бредовые.
access_log в нижестоящем контексте отменяет все вышестоящие?
--
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20180209/7d5edf3a/attachment.html>
Подробная информация о списке рассылки nginx-ru