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

Как настроить mod_evasive для отображения статуса HTTP 429 вместо 403?

Некоторые пауки поисковых систем, такие как 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 в вашу конфигурацию (глобально или на виртуальном хосте, который вы хотите защитить).