![Apache2 mod_evasive 仅适用于一个虚拟主机](https://linux22.com/image/752602/Apache2%20mod_evasive%20%E4%BB%85%E9%80%82%E7%94%A8%E4%BA%8E%E4%B8%80%E4%B8%AA%E8%99%9A%E6%8B%9F%E4%B8%BB%E6%9C%BA.png)
我正在测试一种场景,我借助 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>