首页 / 帖子
如何用varnish缓存或其他手段防止不友好人群模拟不同ip同时访问网站

最近服务器遭受攻击,watchdog里显示几乎一分钟就有上百条404,有人用不同的ip访问node/xxx页面,使得服务器的cpu长期在95%以上,求解决方案?

服务器是centos6 drupal7

1个答案
赵高欣
发布于:2014-09-10 18:02

首先varnish很少做这个,一般通过iptable来做,或者用apache或者nginx的模块,如:mod_limitipconn

IPtable可以限制同一个IP的连接数,连接时长等等。

推荐看这篇文章,这个朋友也遇到了同样的问题,

http://www.rocchi.us/2012/08/mitigate-ddos-with-iptables-and-ipt_recent/


此外,如果用varnish的话,可以在varnish里面检查一下user-agent,user-agent检查一下。


    if ( req.http.user-agent ~ "^$"
      || req.http.user-agent ~ "^Java"
      || req.http.user-agent ~ "^Jakarta"
      || req.http.user-agent ~ "^Ruby"
      || req.http.user-agent ~ "IDBot"
      || req.http.user-agent ~ "Wget"
      || req.http.user-agent ~ "id-search"
      || req.http.user-agent ~ "User-Agent"
      || req.http.user-agent ~ "ConveraCrawler"
      || req.http.user-agent ~ "^Mozilla$"
      || req.http.user-agent ~ "libwww"
  ) {
      error 403 "You are banned from this site.  Please contact via a different client configuration if you believe that this is a mistake.";
    }