Некоторые пауки поисковых систем, такие как Bingbot, сканируют слишком быстро и, похоже, не подчиняются robots.txt. crawl-delay
директива. Это запускает механизм защиты DOS в mod_evasive
для генерации запрещенных ошибок HTTP 403. Но показывать ботам ошибку 403 для абсолютно корректных страниц не идеально и может повлиять на рейтинг страницы. Есть ли способ настроить mod_evasive
показать HTTP-статус 429 вместо 403?
429 Слишком много запросов
Код состояния 429 указывает, что пользователь отправил слишком много запросов за заданный промежуток времени («ограничение скорости»).
Представления ответа ДОЛЖНЫ включать подробности, объясняющие условие, и МОГУТ включать заголовок Retry-After, указывающий, как долго ждать, прежде чем делать новый запрос.
В основном вы просто меняете HTTP_FORBIDDEN на HTTP_TOO_MANY_REQUESTS в mod_evasive20.c и снова компилируете.
Я раздвоил mod_evasive и сделал настраиваемый статус ответа (вместе с некоторыми другими функциями), проверьте это: https://github.com/jvdmr/mod_evasive
Чтобы настроить это, установите новую версию и добавьте DOSHTTPStatus 429
в вашу конфигурацию (глобально или на виртуальном хосте, который вы хотите защитить).