nginx deny ip - доступ запрещен правилом в журнале ошибок

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

Эта директива работает нормально, но наша ошибка nginx.файл журнала переполняется этими запросами. У нас они меняются, но это плохо для нас, так как запросов так много, что мы не можем использовать журнал ошибок, чтобы увидеть, есть ли какие-либо реальные ошибки, о которых нам следует помнить.

Итак, несколько вопросов:

  1. Как предотвратить отправку этих ошибок nginx в error.log.
  2. Почему nginx считает это ошибкой? Если вы указываете директиву deny, а ip запрещен, с точки зрения http это успешный ответ 403, и его вообще не следует рассматривать как ошибку (imo).
4
задан 7 June 2016 в 00:22
2 ответа

Добавить

access_log  /dev/null;
error_log /dev/null;

на уровень директивы deny. Это должно предотвратить эти записи.

0
ответ дан 11 December 2020 в 19:39

В таком случае лучшим решением будет использование геоблокировки с if для отклонения таких запросов, как:

geo $blocked {
    default 0;
    1.1.1.1/32 1;
}
...
server {

  if ($blocked) {
    return 444;
  }
}
0
ответ дан 11 March 2021 в 16:21

Теги

Похожие вопросы