Nginx log_format игнорируется
Я ищу небольшую помощь с функцией log_format в Nginx. Я использую операторы if (да, если это зло, я знаю), чтобы выбрать исходящий пул на основе значений аргументов, и все работает неправильно. Мне действительно нужно регистрировать, какой сервер используется в восходящем потоке, черт возьми, если бы я мог зарегистрировать переменную $ pool, это тоже было бы здорово.
Независимо от того, что я пытаюсь или где я помещаю log_format, он все равно регистрируется в "комбинированном" формате по умолчанию. Я посмотрел все файлы конфигурации, которые включены в запуск nginx, и log_format определен только в одном месте.
Есть идеи? Вот соответствующие части моих конфигов:
nginx.conf / http context:
log_format auditing '$remote_addr - $remote_user [$time_local] '
' "$host" "$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" $proxy_host '
' $upstream_addr $http_soapaction';
map $request $loggable
{
~*app_ping\.d911 0;
default 1;
}
access_log /var/log/nginx/access.log auditing; #combined if=$loggable
error_log /var/log/nginx/error.log debug;
сайты с включенным / специфичным для сайта / контекстом сервера:
access_log /var/log/nginx/producttest.log auditing;
set $pool "def-pool-443"; ### Set the default pool (will be TAS pool in prod)
### Modify target pool depending on criteria match
if ($args ~* 'device_type=bot')
{
set $pool "bot-pool-443";
}
...
location /
{
access_log /var/log/nginx/productest-location.log auditing;
proxy_pass https://$pool;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_next_upstream error timeout invalid_header http_500;
proxy_connect_timeout 2;
}
1 ответ
Хорошо, хорошо, после нескольких дней, когда я бился головой о стену, я ответил на свой вопрос, отформатировав его для публикации.
Я последовал онлайн-примеру того, как отформатировать log_format, и оказалось, что ему не нравятся одиночные галочки, используемые для переноса строк. Я вынул их и поместил все в одну строку и до того.
В любом случае, надеюсь, что это поможет кому-то еще, кто последовал тому же примеру.