nginx网站被cc攻击怎么办?cc攻击缓解方法

  • A+
所属分类:技术分享

nginx网站被cc攻击怎么办?cc攻击缓解方法

nginx网站被cc攻击怎么办?今天讲的是基于 Nginx 的缓解攻击策略,就是限制并发和 UA 访问。


一、限制单 IP 访问者并发数量:

修改 nginx.conf,在其中合适的地方加入如下内容:

limit_conn_zone $binary_remote_addr zone=perip:10m;

如下图:

nginx网站被cc攻击怎么办?cc攻击缓解方法

然后修改你的站点配置,在其中 server 段加入如下内容:

limit_conn perip 10;
limit_rate_after 1m;
limit_rate 300k;

简单来说就是加到你 listen 80; 这句的下面,这里的 10 就是单 IP 的并发数量,1M 和 300K 是在 1M 之前不限速、1M 以上就显示每个并发 100K 。然后检查一下 nginx 配置是否有问题:

/usr/local/nginx/sbin/nginx -t

如果如下图就说明没问题:

nginx网站被cc攻击怎么办?cc攻击缓解方法

如果有问题就自行检查一下,没问题就重载 nginx 即可:

/etc/init.d/nginx reload

二、限制个别 UA 进行访问:

这个相对简单,直接修改你的站点配置、在其中加入如下:

if ($request_method !~ ^(GET|HEAD|POST)$ ) {
	return 403;
}

if ($http_user_agent ~* (Bench|bench|Apache|apache) ) {
	return 444;
}

这里屏蔽了 GET、HEAD、POST 等请求方式,同时禁止部分 UA 访问(返回444),更多的 UA 可以自己添加到如上后重载 nginx 即可生效使用、你可以顺便测试自己是否成功 。。


小结

配合前几篇文章来说,可以有效阻止多并发的而已访问。但是还是只能防住一些压力测试党 ...