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

Блокировать плохих ботов в Nginx для нескольких сайтов

Мне нужно заблокировать кучу роботов от сканирования нескольких сотен сайтов, размещенных на веб-сервере Nginx, работающем на машине Ubuntu 16.04.

Я нашел довольно простой пример Вот (важная часть кода приведена ниже), но кажется, что эта функция доступна только внутри серверного блока (из-за оператора IF), и я думаю, что это ужасная идея, особенно с большим количеством сайтов на машине.

  if ($http_user_agent ~* (ahrefs|wget|crawler|majestic) ) {
    return 403;
  }

Итак, вопрос в том, можно ли добиться чего-то подобного из основного nginx.conf файл и работать для всех доменов, определенных в sites-enabled папка и те, которые будут добавлены в будущем?

Я также читал о подходе к карте и нашел на GitHub целый проект, который его использует - https://github.com/mariusv/nginx-badbot-blocker но по-прежнему требует редактирования всех файлов в sites-enabled папка, и это займет слишком много времени для нескольких сотен уже работающих сайтов.