使用负载均衡器而不是 Apache 来限制来自特定 IP 的事务

使用负载均衡器而不是 Apache 来限制来自特定 IP 的事务

我在负载均衡器后面有两个 Apache 实例,根据请求类型将请求传输到其中。

现在我想要的是:当我从某个 IP 地址收到太多事务时,我想阻止该 IP 几秒钟,并向客户端发回一些响应,表明您发送了太多请求。

现在的问题是:有什么方法可以在负载均衡器上处理这种情况,而不是调用我的实例。

我该如何在 Apache 上处理这个问题?我使用的是 Apache 2.2 版本。

答案1

我建议您在 Apache 中设置 mod_evasive。

Apache 上的 mod_evasive

mod_evasive 是 Apache 的规避策略模块,可在发生 HTTP DoS 攻击或暴力攻击时提供规避操作。它还被设计为一种检测和网络管理工具,并且可以轻松配置为与 ipchains、防火墙、路由器等进行通信。 mod_evasive 目前通过电子邮件和系统日志工具报告滥用行为。

要在 Debian 中安装它:

apt-get install libapache2-mod-evasive

然后编辑 mods-available/evasive.conf。您的值可能会有所不同,具体取决于服务器上拥有的虚拟主机数量。

<IfModule mod_evasive20.c>
DOSHashTableSize 2048
DOSPageCount 50                    <---- visites to site in the given time
DOSSiteCount 500                   <---- to pages
DOSPageInterval 2.0                <---- 2 seconds
DOSSiteInterval 1.0
DOSBlockingPeriod 600.0             <--- seconds
DOSLogDir /var/log/apache2/evasive
DOSWhitelist 127.0.0.1
DOSWhitelist x.x.x.*
</IfModule>

要启用新mod_evasive配置,您必须重新启动 Apache。

您可能还对商业服务感兴趣,例如云耀光或亚马逊云锋

相关内容