Apache中继以防止DoS

我一直在想,是否有一种技术能够根据速率对给定IP进行响应(减慢响应)。

例如,我有一个“重”API服务的Apache服务器,如果服务器不是100%加载,我想限制为1个请求/ 2秒/ IP,如果服务器已满载,则限制为“合理使用”策略。 可选的,我想推广具体的电话号码,例如/req.php?id=157,以“奖励费率”例如10次/秒的方式。

另外,如果有人超过100个请求/小时,他将被提示错误响应提示他升级等。

对我来说,这听起来像是许多系统的共同要求,我希望有一些相关的框架。 你知道任何在PHP,Python,Java甚至作为一个Apache模块?

降低请求率是DDOS的用途。

不要帮助DDOSers达到目的。

在Apache级别上执行此操作不仅不切实际,而且会带来巨大的开销。 如果你需要对每个IP进行速率限制,最好的办法是在操作系统的防火墙内完成(例如FreeBSD中的IPFW)。

从长远来看,它不仅会更加灵活,而且它在系统级运行,过滤速度快。

关于实际的API实现,你应该在你的API应用程序中处理而不是Apache。 将请求logging到像Memcache这样的快速介质中,并让cron检索并将数据存储在数据库中进行处理。 当用户XYZ达到阈值时,只需在握手或下一个请求内强加即可。