Apache2 mod_evasive 仅适用于一个虚拟主机

Apache2 mod_evasive 仅适用于一个虚拟主机

我正在测试一种场景,我借助 Apache Web 服务器在同一台机器上托管两个站点。我希望只为一个站点启用 mod_evasive。我看不出有什么办法让它工作。以下是我尝试过的场景和方法。

  • 带有 Apache2 Web/httpd 服务器的 Ubuntu 16.04
  • 使用 wwww.site1.com 和 wwww.site2.com 各自的 conf 文件启用主机
  • 使用“apt-get install libapache2-mod-evasive”安装并启用 mod_evasive
  • 我只想要 www.site1.com 的 mod_evasive

我已尝试过的事情。

[1] 全局启用 mod_evasive,并将以下内容添加到 site1.conf。这会影响 site1 和 site2。

<IfModule mod_evasive20.c>
   DOSHashTableSize 3097
   DOSPageCount  2
   DOSSiteCount  10
   DOSPageInterval 10
   DOSSiteInterval 100
   DOSBlockingPeriod  10
   DOSLogDir   /var/log/mod_evasive
</IfModule>

[2] 全局禁用 mod_evasive,并在 site1 上加载 evasive 模块 + conf。它仍然适用于两个站点。

[3] 向 site2 添加了 DOSBlockinfPeriod == 0。但还是没成功。

<IfModule mod_evasive24.c>
    DOSBlockingPeriod 0
</IfModule>

需要有关配置的帮助,允许 mod_evasive 仅用于一个虚拟主机,或者允许每个虚拟主机“.conf”文件覆盖 props。

答案1

您应该使用与系统上安装的 mod_evasive 版本相同 2.4 或 2.0

<IfModule mod_evasive20.c>
    DOSBlockingPeriod 0
</IfModule>

相关内容