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

Дросселировать или игнорировать запросы на основе IP

Есть ли что-то, что я могу использовать, чтобы установить правила для Apache для регулирования временно или игнорировать любой IP-адрес, который делает X запросов в секунду?

Было бы здорово, если бы для этого был модуль Apache. Я смотрел на mod_bandwidth и mod_limitipconn но похоже, что они основаны на пропускной способности, которую мне очень сложно определить с точки зрения количества запросов на IP.

Я был бы счастлив использовать что-то внешнее по отношению к Apache, которое будет работать на стандартном сервере Linux (Fedora или CentOS).

iptables имеет модули ограничения скорости и соединения:

iptables -I INPUT -m limit --limit X/second -p tcp --dport 80 --syn -j ACCEPT

Обратите внимание, что на самом деле это не ограничивает количество HTTP Запросы; он ограничит количество TCP-соединений, которое может не соответствовать количеству HTTP-запросов, если браузер использует поддержку активности. Также обратите внимание, что большинство браузеров будет выполнять большое количество параллельных подключений; вы можете захотеть использовать --limit-burst возможность убедиться, что пользователи не блокируются таким поведением.