Я собираюсь использовать mod_evasive и / или mod_throttle для предотвращения неправомерного доступа к моему веб-сайту (под управлением Apache 2.4). Под «оскорбительным» я имею в виду, например, использование wget или HTTtrack для загрузки всего веб-сайта. И у mod_evasive, и у mod_throttle есть способы ограничить количество обращений к странице, которые пользователь может сделать за единицу времени. Так, например, я могу ограничить IP-адрес 5 страницами каждые 10 минут или что-то в этом роде.
Однако я бы хотел разрешить поисковым роботам превышать лимит.
Итак, есть два варианта:
(1) Я могу каким-то образом отправлять страницы индивидуально в поисковые системы. Итак, я блокирую доступ роботов к сайту, но просто отправляю им страницы явно, когда страница обновляется (могу ли я это сделать?).
(2) Каким-то образом занести в белый список определенных роботов. Проблема здесь в том, что я не буду знать IP-адрес робота заранее.
Какой подход использовать?
Белый список не обязательно должен быть основан на IP. mod_qos может выполнять сопоставление на основе пользовательского агента.
Это никому не помешает притвориться googlebot, но замедлит людей, которые не меняют его из wget.
Если загрузки по-прежнему кажутся чрезмерными, попробуйте обнаружить поддельные пользовательские агенты с помощью анализа журналов запросов. Используйте инструменты для веб-мастеров и известные IP-адреса поисковых систем. Сколько времени вы потратите на это, зависит от того, насколько ценны ресурсы вашего веб-сервера и насколько вы хотите, чтобы весь сайт не отражался.