Журнал условного доступа Nginx не работает

Я пытаюсь сделать журнал доступа nginx условным, используя оператор if, но он не работает.

Это соответствующий код из файла конфигурации.

map $uri $log_access {

    /.lb-check 0;

    default 1;
}

server {
    ...

    access_log /var/log/nginx/access.log combined if=$log_access;

    ...
}

Я не хочу, чтобы определенные запросы регистрировались, в данном случае это запрос, сделанный балансировщиком нагрузки на URL-адрес /.lb-check

К сожалению, эта конфигурация не работает

Я также пытался сделать следующее, и это тоже не работает.

location = /.lb-check { access_log off; }

Кто-нибудь знает, почему эти методы не работают?


person ArthurGuy    schedule 16.05.2018    source источник
comment
Ваш access_log off должен абсолютно работать, так что больше похоже на то, что NGINX не перезагружается, когда вы применяете это изменение. Убедитесь, что ваша конфигурация действительна с помощью nginx -t. Вы можете рассмотреть возможность выполнения location /.lb-check вместо location = /.lb-check в случае, если вы также получаете запросы на /.lb-check/, которые не будут покрыты   -  person Joshua DeWald    schedule 16.05.2018


Ответы (1)


Это оказалось проблемой конфигурации с внутренней системой сборки, но после решения этой проблемы я в конечном итоге использовал метод карты, но с параметром $request_uri

map $request_uri $log_access {

  /.lb-check 0;
  default 1;

}

location = /.lb-check не работал, так как он переопределял обработку этого запроса, что означает, что ничего не было определено для обслуживания запроса (должен был перейти к обработчику php).

person ArthurGuy    schedule 17.05.2018