Welcome! Log In Create A New Profile

Advanced

Re: Не работает условное логгирование

Maxim Dounin
April 20, 2015 09:42AM
Hello!

On Mon, Apr 20, 2015 at 09:13:24AM -0400, nNgzlTtv3k5lzmKRvlmS22tSl8sJr68k wrote:

> Задаю в секции server{} следующее
>
> set $do_log 0;
> if ($status = 200){ set $do_log 1; }
> access_log /var/log/nginx/code-200.log combined if=$do_log;
>
> логгирование не работает, в лог вообще ничего не летит. Если использовать
> другие переменные, не $status, работает. Это ошибка в nginx ?

Нет, это ошибка в конфиге. Директивы модуля rewrite выполняются
до того, как становится известен статус ответа, соответственно
директива if в вышеприведённом фрагменте не может сработать
никогда.

Правильно так:

map $status $status_200 {
200 1;
}

access_log /path/to/200.log combined if=$status_200;

Подробнее про директивы модуля rewrite, если всё-таки хочется их
использовать, имеет смысл прочитать тут:

http://nginx.org/ru/docs/http/ngx_http_rewrite_module.html

Подробнее про map тут:

http://nginx.org/ru/docs/http/ngx_http_map_module.html

--
Maxim Dounin
http://nginx.org/

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Не работает условное логгирование

nNgzlTtv3k5lzmKRvlmS22tSl8sJr68k April 20, 2015 09:13AM

Re: Не работает условное логгирование

Maxim Dounin April 20, 2015 09:42AM

Re: Не работает условное логгирование

nNgzlTtv3k5lzmKRvlmS22tSl8sJr68k April 20, 2015 11:05AM

Re: Не работает условное логгирование

Maxim Dounin April 20, 2015 12:08PM

Re: Не работает условное логгирование

nNgzlTtv3k5lzmKRvlmS22tSl8sJr68k April 20, 2015 10:54AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 304
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready