Назад | Перейти на главную страницу

Отключить ведение журнала Nginx для «запрещено правилом»

В моей конфигурации Nginx у меня есть несколько IP-блоков, чтобы бороться со спамерами и ботами.

Это очень эффективно, но в результате мои журналы ошибок очень быстро заполняются такими сообщениями об ошибках, как эти:

2015/12/16 00:56:28 [ошибка] 27748 # 0: * 120462 доступ запрещен правилом, клиент: 167.114.xxx.xxx, сервер: bla bla ....

Теперь я не хочу полностью отключать ведение журнала ошибок, так как я хочу выяснить, что идет не так, когда что-то идет не так. Я просто хочу отключить регистрацию этих сообщений «запрещено правилом».

есть идеи как это сделать?

Как уже упоминалось Вот, используйте условное ведение журнала:

Включение условного ведения журнала

Условное ведение журнала позволяет исключить тривиальные или неважные записи журнала из журнала доступа. В NGINX условное ведение журнала включается параметром if директивы access_log.

Например, можно исключить запросы с кодами состояния HTTP 2XX (Успех) и 3XX (Перенаправление):

map $status $loggable {
    ~^[23]  0;
    default 1; }

access_log /path/to/access.log combined if=$loggable;

РЕДАКТИРОВАТЬ: как @zsero описано в комментарии, условное ведение журнала поддерживается только в access_log не error_log.ссылка