Re: Не записывается access log
Maxim Dounin
mdounin at mdounin.ru
Thu Apr 25 16:07:40 UTC 2013
Hello!
On Thu, Apr 25, 2013 at 11:05:30AM -0400, X-Thief wrote:
> Пытаюсь сделать чтоб 444 http ошибки записывались в другой лог файл.
>
> Делал так:
>
> error_page 444 = @log444;
> location @log444 {
> access_log log444.txt;
> }
>
> Файл создался, но ничего в него не записывается. Ошибки по прежнему пишутся
> в прежний стандартный лог-файл.
>
> Чуть ниже у меня условия, где выдаются такие ошибки. Эти условия находятся
> как и в location { так и просто в server {
>
> Вроде этого:
> if ($something) {
> return 444;
> }
>
> Может кто что посоветовать?
> Спасибо.
Возврат 444 ошибки - это способ сказать nginx'у, что соединение
надо закрыть. До директивы error_page в этом случае дело не
доходит.
Если хочется, чтобы nginx закрыл соединение, и при этом отдельно
залогировал соответствующий запрос - то можно сделать это, перейдя
в нужный location перед возвратом 444, как-то так:
error_page 418 = @close;
if ($something) {
return 418;
}
location @close {
access_log /path/to/444.log;
return 444;
}
--
Maxim Dounin
http://nginx.org/en/donation.html
Подробная информация о списке рассылки nginx-ru