Warning: Undefined array key "HTTPS" in include() (line 29 of /opt/www/fdv2/drupal.stage/web/sites/default/settings.local.php).
include('/opt/www/fdv2/drupal.stage/web/sites/default/settings.local.php') (Line: 4)
require('/opt/www/fdv2/drupal.stage/web/sites/drupal001.net/settings.php') (Line: 145)
Drupal\Core\Site\Settings::initialize('/opt/www/fdv2/drupal.stage/web', 'sites/drupal001.net', Object) (Line: 1099)
Drupal\Core\DrupalKernel->initializeSettings(Object) (Line: 701)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
如何用varnish缓存或其他手段防止不友好人群模拟不同ip同时访问网站 - Drupal大学 - Drupal问答论坛
首页 / 帖子
如何用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.";
    }