mod_evasive无法在Ubuntu 18.04上的Apache 2.4.48中工作



我按照中的说明安装了mod_evasivehttps://www.atlantic.net/vps-hosting/how-to-install-and-configure-modevasive-with-apache-on-ubuntu-18-04/但配置如下:

DOSHashTableSize    3097
DOSPageCount        1
DOSSiteCount        10
DOSPageInterval     1
DOSSiteInterval     1
DOSBlockingPeriod   10

但是当我运行perl脚本时,我没有看到IP被列入黑名单,所有请求都得到了200 ok的响应,而我预计403 Forbidden:(

我做错了什么??

附加细节:当我重新启动Apache时,我看到它的6个实例。当我运行测试perl脚本时,立即检查Apache实例的数量。我看到30个实例的计数,过一段时间就会降到10个。

我的Apache配置如下:

Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

我的mpm_prefork_module配置如下所示:

StartServers             5
MinSpareServers          5
MaxSpareServers          10
MaxRequestWorkers        80
MaxConnectionsPerChild   1

这是Apache配置的问题吗??

问题不在于mod_evasive或其配置本身。

在我的情况下,我不得不调整mpm_prefork_module的配置,如下所示,以使mod_evasive配置发挥作用:

StartServers             10
MinSpareServers          10
MaxSpareServers          10
MaxRequestWorkers        80
MaxConnectionsPerChild   0

通过设置StartServers = MinSpareServers = MaxSpareServers = {your_magic_number}MaxConnectionsPerChild=0,基本上将服务器数量固定为常量,这样就不会产生新的服务器进程,也不会发生连接的重新循环,从而允许Child保持无限多的并发连接。

我花了一天的时间来修复这个问题,希望这个答案有了公式,你不会浪费你的一天:(

相关内容

  • 没有找到相关文章

最新更新