上周开始,有用户抱怨主机不稳定,说刷新几次都无法访问了,而每当用户反馈这个问题的时候,我却能打开用户的站点。并且登录到服务器看日志,httpd也没有任何宕机的记录,所以按道理说一定就是用户网络的问题,毕竟中国的网络已经被那个狗日的校长干扰得不成样子了。
后来,依然有用户陆续反应这个问题,而问题集中在fremont机房的服务器,再加上我家的小区宽带会莫名其妙的无法访问fremont的机房我所有的服务器,于是,又归咎于网络的问题,当然实际上有部分也是因为网络问题导致。
昨晚,casparant同学提交了有问必答,同样遇到了这个怪异的问题,就是当自己无法访问的时候,换一个ip却可以访问,并且根据我的要求给出了tracert的结果。
另外,casparant还提供了一个有用的信息,那就是他用homezz自动数据转移功能换了几个服务器,换了不同的机房,这个问题依然存在。这个时候我意识到,问题应该是服务器防火墙导致。
然后我在电脑上用ab做并发连接测试,发现果然IP被临时屏蔽,基本可以肯定是我的那个防火墙脚本导致。
原来,当初调试防火墙脚本的时候,将并发的ip限制设置成30。也就是某个ip对服务器的并发连接数超过了30,则服务器认为是攻击行为,便临时屏蔽该ip 5分钟。所以用户刷新网页频繁的时候,很容易就超过30,于是服务器就对此ip做了屏蔽,该用户就无法访问他的站点,而这个时候,其他IP是可以正常访问的。
现在我将这个限制提高了10倍左右,也就是说正常的单IP对服务器的访问并发基本不会超过300,超过,也有刷流量的嫌疑了,目前看来,问题已经解决。
为什么要写这个防火墙脚本?
某日,有用户告知他的流量迅速被某个单独的ip给刷完了,希望给出一个解决方案,所以我们写了这个防火墙的脚本,
但是上周安装这个脚本的时候,忘记修改初始值了,所以导致管理员管理网站多次刷新的时候,IP被加入了防火墙。不过这对其他用户其实基本没有影响(也可能有,不过很小)
该死的功夫网,粗心的某人,为解决次问题走了不少弯路啊








