web性能优化(三)反爬虫策略
?? [文章作者:狂奔的鹿(陆松林) 本文版本:v1.0? 转载请注明原文链接:http://dynamiclu.iteye.com/]
?
?? 反爬虫策略,表面上看似乎跟WEB系统优化没有关系,经过分析,发现该策略是可以归到WEB性能优化的系列之中。
?? 通过分析apache日志发现,某系统40%的带宽和服务器资源都消耗在爬虫上,如果除去10%-15%搜索引擎的爬虫,做好反爬虫策略,能节省20%-25%的资源,其实是变向优化了web系统。
一、爬虫请求与正常用户请求的区别
???? 爬虫请求是类似httpClient的机制或curl,wget的命令,用户请求一般走浏览器。
??? 区别:爬虫请求一般不会执行页面里的异步JavaScript操作,而用户请求则执行Jquery提供的异步JavaScript操作,具体如下:
??
?
?
?
?文件/home/songlin.lu/shell/log/noforbid_ips.log为白名单列表
?
tcpReleaseCmd.sh参考代码如下:
?
?
?
?
此策略相当于给我们的系统设定了门槛,类似公路交通系统内,某马路设定限高4米栏杆,高于4米的车不能在此通行。该策略能预防恶意的或新手写的请求频率不规则的爬虫。
?
(二)WEB服务器容器层面
a.User-Agent判断 ???? b. connlimit模块判断
???? 每个爬虫会声明自己的User-Agent信息,我们可以通过判断爬虫的User-Agent信息来识别,具体查看相关文档
??? Apache作connlimit需要mod_limitipconn来实现,一般需要手动编译。
编辑httpd.conf文件,添加如下配置
?
?
?
[文章作者:狂奔的鹿(陆松林) 本文版本:v1.0? 转载请注明原文链接:http://dynamiclu.iteye.com/]
?
?
?
?
?
?
?
?