Nginx 反爬虫

今日头条蜘蛛疯狂抓取导致cpu爆满,这个蜘蛛真是太残忍了,抓取的频率太高了,而在今日头条内会屏蔽网站内的所有广告,所以这种抓取没什么用,都形成CC攻击了。

最近网站访问明显慢了很多,阿里云一整就给我网站拉进小黑屋,看了网站监控发现都是今日头条抓取,本来我没想管,但是抓取频率超过了基础防火墙而且CPU爆满

禁止了立马好了。

我的服务器是4H4G20M带宽,本来也就一千多人访问,通过监控软件查看居然达到了六万。太疯狂了

nginx在站点的设置,配置文件中 server{ } 中添加

1
2
3
4
#禁止爬虫工具的抓取
if ($http_user_agent ~* "Bytespider|FISPIDER|YisouSpider") {
return 403;
}

Appache:
在伪静态里设置 这里以thinkphp为例!

1
2
3
4
5
6
7
8
9
10
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
#禁止爬虫工具的抓取
RewriteCond %{HTTP_USER_AGENT} "^.*FISPIDER.*|.*YisouSpider.*$" [NC]
RewriteRule ^(.*)$ - [R=404,L]

</IfModule>

配置完不用重启,就能生效!

记录

#禁止爬虫工具的抓取

1
2
3
if ($http_user_agent ~* "Bytespider|FISPIDER|AhrefsBot|SemrushBot|MJ12bot") {
return 403;
}