我有一个HAPROXY安装后面的几台Apache 2机器,我试图在这些Apache机器上设置mod_evasive,同时使用mod_rpaf获取真正的X-FORWARDED客户端IP。
出于某种原因,mod_evasive抓取和阻止一些ips(用ApacheBenchtesting),但有些可以继续,打开更多的连接,基本上DOS我的服务器。
任何想法可以排除一个在mod_evasive另一个IP? 考虑到它背后的代理,真正的客户端IPS是可见的Apache日志?
当DOSWhitelist设置为我们的子网掩码(例如192.168。)时,mod_evasive的定义是默认的。
rpaf模块具有我们的HAPROXY ip的RPAFproxy_ips定义。 有任何想法吗?
你遇到的问题可能是mod_evasivedevise的一部分:它用于阻塞的统计信息被保存在每个subprocess中。 因此,如果您使用的是Prefork MPM并将MaxClients设置为50,那么将单独跟踪这50个客户端中的每个客户端的连接。
此外,还有MaxRequestsPerChild设置。 一旦达到这个目标,这个孩子将会被杀死,而数据也会随之而来。 所以,在某些情况下,mod_evasive根本无效。
对不起,我现在没有更好的select。 我正在寻找自己。 (我还没有证实它是否可以和其他MPM一起使用。)
参考文献:
您可以使用mod_evasive_x为客户端IP地址使用X-Forwarded-For标头值,并使用mod_rpaf的最后一个稳定版本,您可以在其中为RPAF_ProxyIPs值设置networking子网掩码。 对于负载均衡器(ELB)背后的AWS实例,它正常工作。