带有 mod_evasive apache 的 AWS 负载均衡器

带有 mod_evasive apache 的 AWS 负载均衡器

我已经设置了 mod_evasive 和 mod_remoteip 来将代理头从负载均衡器的更改为客户端的实际 ip。

但是我使用 mod evasive 时遇到了问题。目前,我对 mod evasive 的配置是:

DOSHashTableSize 3097
DOSPageCount 1
DOSSiteCount 2
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 100

据我了解,上述配置最多允许每秒对一个页面发出 1 个请求,或者每秒最多允许对网站中任何位置发出 2 个页面发出请求。

然而,问题是,负载均衡器的 IP 地址不是静态的,因此当它尝试执行健康检查时,mod evasive 会阻止负载均衡器。这导致 ELB 认为 ec2 实例不健康。

我应该怎么做才能防止出现此问题?是否可以通过 DNS 名称将 IP 地址列入白名单?我的 ELB DNS 名称是:

something-experimental-lb-123411.ap-northeast-1.elb.amazonaws.com 如果没有,我还有什么其他选择?

答案1

我(认为)解决这个问题的方法是创建一个执行防火墙和预过滤(iptables、ipset 和 mod_evasive)的反向代理,然后将其指向实际提供内容的内部负载平衡器。如果您要使用此解决方案,请确保对代理进行压力测试,以了解您预计要处理的总请求量。

相关内容