Re: access_log переопределить через if на уровне server
Alexander Kolesen
kolesen.a на gmail.com
Ср Янв 18 22:24:17 UTC 2012
> Здравствуйте, коллеги.
>
> Пытаюсь сделать так:
> server {
> listen ...
> if ($args ~ coolid){
> access_log = /var/log/nginx/special_coolid-access.log
> }
> ....
> }
>
> Получаю
> "access_log" directive is not allowed here
>
> Пуркуа?
>
> P.S. Основная цель - получить отдельный лог для запросов с coolid в
> аргументах.
Как вариант:
map $arg_coolid $access_log {
~^ special_coolid-access.log;
default access.log;
}
server {
...
access_log /var/log/nginx/$access_log;
...
}
Если аргумент coolid присутствует в запросе и не пуст, то логгирование
таких запросов будет производиться в special_coolid-access.log.
Стоит принимать во внимания особенности, которые перечислены здесь:
http://nginx.org/ru/docs/http/ngx_http_log_module.html
Подробная информация о списке рассылки nginx-ru