有什么我可以用来设置规则的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连接的数量,如果浏览器使用keepalive,那么这个连接的数量可能与HTTP请求的数量不一致。 另外请注意,大多数浏览器将进行大量的并行连接; 你可能想使用--limit-burst选项来确保用户不会被这种行为阻塞。