欢迎关注大数据技术架构与案例微信公众号:过往记忆大数据
过往记忆博客公众号iteblog_hadoop
欢迎关注微信公众号:
过往记忆大数据

搜索引擎频繁抓取导致网站挂掉

  从上周开始,我博客就经常出现了Bad Request (Invalid Hostname)错误,询问网站服务器商只得知网站的并发过高,从而被服务器商限制网站访问。可是我天天都会去看网站的流量统计,没有一点异常,怎么可能会并发过高?后来我查看了一下网站的搜索引擎抓取网站的日志,发现每分钟都有大量的页面被搜索引擎抓取!难怪网站的并发过高!!

  但是大家都知道搜索引擎收录网站对我们来说是件好事,我们不能禁止掉所有的搜索引擎抓取,所以可以设置一些爬取规则来限制。通过我流量来源分析,每天从百度,google来的流量很多,而其他的搜索引擎几乎没流量导入,像这些没有带来流量的搜索引擎我是可以屏蔽掉。我想到的第一种方法就是在网站根目录写robots.txt文件:

User-agent: Googlebot
Disallow: /wp-
Allow: /wp-content/uploads/
Disallow: /?
Disallow: /feed
Disallow: /*/*/feed
Disallow: /trackback
Disallow: /*/*/trackback
Disallow: /*.php$
Disallow: /*.css$

User-agent: Baiduspider
Disallow: /wp-
Allow: /wp-content/uploads/
Disallow: /?
Disallow: /feed
Disallow: /*/*/feed
Disallow: /trackback
Disallow: /*/*/trackback
Disallow: /*.php$
Disallow: /*.css$

User-agent: *
Disallow: /

  正规的搜索引擎一般会遵循robots.txt文件规范的,上文只允许百度、google爬取博客。但是总有那么些搜索引擎不遵循robots.txt文件规范,也就是说这样设置是没用的。那些搜索引擎照常爬取你网站!不遵循robots.txt协议的代表:iAskSpider SohuAgent wget、OutfoxBot。之前我认为微软的必应搜索引擎应该会遵循robots.txt协议,但是我设置了上述robots.txt文件规范,居然还发现日志里面有大量的bingbot!

2014-11-13 17:38:14	157.55.39.39	/archives/1112/comment-page-2	
Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
2014-11-13 17:37:09	157.55.39.39	/archives/928/comment-page-10	
Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
2014-11-13 17:34:53	157.55.39.60	/archives/896	
Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
2014-11-13 17:30:09	157.55.39.60	/archives/268	
Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
2014-11-13 17:27:59	157.55.39.40	/archives/857	
Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
2014-11-13 17:27:46	207.46.13.99	/archives/740/comment-page-1	
Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
2014-11-13 17:25:51	157.55.39.60	/archives/category/hadoop/page/2	
Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)

  那么第二招限制搜索引擎爬取就是可以在你网站根目录写一个.htaccess,来限制:

SetEnvIfNoCase User-Agent "^Yisou" bad_bot
SetEnvIfNoCase User-Agent "^Easou" bad_bot
SetEnvIfNoCase User-Agent "^Youdao" bad_bot
SetEnvIfNoCase User-Agent "^msn" bad_bot
SetEnvIfNoCase User-Agent "^bingbot" bad_bot
Deny from env=bad_bot

这样可以在底层就限制了搜索引擎的爬取。

  第三招限制搜索引擎的方法:很多网站服务器应该支持屏蔽某个IP,这种方法从效果上来说应该是最好的,从底层就限制了,但是这个方法有个弊端,那就是你得知道你需要屏蔽的IP地址,目前我博客已经屏蔽掉必应的部分IP,希望这些方法能够给网站减负!

本博客文章除特别声明,全部都是原创!
原创文章版权归过往记忆大数据(过往记忆)所有,未经许可不得转载。
本文链接: 【搜索引擎频繁抓取导致网站挂掉】(https://www.iteblog.com/archives/1202.html)
喜欢 (6)
分享 (0)
发表我的评论
取消评论

表情
本博客评论系统带有自动识别垃圾评论功能,请写一些有意义的评论,谢谢!