“网络爬虫” http://baike.baidu.com/view/284853.htm“网路爬虫”在日常维护服务的过程中,是一个常见的问题。它说:“我要一步一步往上爬,爬呀爬呀爬到服务Game Over”!呵呵,因为遇到了,所以分享一下,处理网络爬虫的方法(这里主要是在Nginx上,做禁止爬虫).
常见问题:
1.网络堵塞丢包严重(上下行数据异常,排除DDOS攻击,服务器中毒。异常下载,数据更新)
2.服务器负载过高,CPU几乎跑满(针对相应的服务配置而定);
3.服务基本瘫痪,路由瘫痪;
4.查看日志发现大量的异常访问日志
思路:先查看日志--分析日志--针对相关信息来源做限制(防火墙,Nginx本身都可以);
具体步骤:
一.先查看日志
cat logs/www.ready.log |grep spider -c (看有爬虫标志的访问次数)
cat logs/www.ready.log |wc (合计总页面的访问次数)
cat logs/www.ready.log |grep spider|awk '{print $1}'|sort -n|uniq -c|sort -nr (查看爬虫的IP地址来源)
cat logs/www.ready.log |awk '{print $1 " " substr($4,14,5)}'|sort -n|uniq -c|sort -nr|head -20(_列出1分钟内的前20位IP地址)
cat logs/www.ready.log |grep ip (列出出现较多的IP地址,这个可以结合上面的命令使用。)
二.分析日志
晓得爬虫爬过那些内容,是什么爬虫爬的。什么时候爬的
常见的爬虫有Google,Baidu,Yahoo这些(在下面的Nginx的http_user_agent配置处,有一些常见的爬虫)
三.修改防火墙策略,毙掉这个好奇的爬虫IP
vim /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -s 61.33.22.1/24 -j REJECT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -s 61.22.1.1/24 -j REJECT
重新启动iptables生效。
四.关于Nginx上的http_user_agent 的设置也可以很好的防范
具体的配置信息如下:
server {
listen 80;
server_name www.ready.com;
if ($http_user_agent ~* "qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot")
{
return 403;
}
location ~ ^/(.*)$ {
proxy_pass http://localhost:80;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html { root html;
}
}
分享到:
相关推荐
在处理网络爬虫的策略中,Nginx可以用来限制或禁止特定爬虫的访问,以保护服务器资源和数据安全。以下是关于Nginx服务器屏蔽与禁止屏蔽网络爬虫的方法的详细说明: 首先,我们可以通过Nginx的配置文件来识别并阻止...
代码如下: #全局配置 limit_req_zone $anti_spider zone=anti_spider:10m rate=15r/m; #某个server中 limit_req zone=anti_spider burst=30 nodelay; ... ...超过设置的限定频率,就...附:nginx中禁止屏蔽网络爬虫 代码如
在IT行业中,服务器管理和网络爬虫的控制是两个重要的领域。`nginx`作为一个高性能的HTTP和反向代理服务器,常用于处理高并发访问,并且在防止恶意或无用爬虫占用资源方面扮演着重要角色。本篇文章将详细介绍如何...
例如,可以设定特定的User-Agent为爬虫时,返回403禁止访问,或者限制同一IP的请求频率,防止资源被滥用。 3. 高效缓存和压缩 Nginx支持静态内容的缓存,可以减轻后端服务器的压力,并可以设置内容压缩功能,以减少...
分布式爬虫是网络爬虫技术的一种高级形式,它旨在通过多台计算机协同工作来抓取互联网上的大量数据,从而显著提高爬虫的抓取速度和处理能力。在现代大数据时代,面对海量的网页信息,单机爬虫往往力不从心,而分布式...
在网络安全和服务器管理中,防止恶意爬虫和采集器对网站资源的过度访问是一项重要的任务。Nginx作为流行的Web服务器软件,提供了便捷的方式来屏蔽特定IP地址或IP段,从而保护网站内容。以下是对Nginx日志分析及IP...
标题“badbots:机械手和刮板IP列表”指出,这个资源主要关注的是网络中不受欢迎的自动程序,也就是所谓的“坏机器人”或网络爬虫。这些机器人通常用于非法活动,如数据抓取、DDoS攻击或者恶意扫描,对网站的安全和...
爬虫会遵循robots.txt规则,尊重网站的禁止爬取指令。 3. **漏洞检测算法**:IntelliTamper采用先进的检测算法,包括动态和静态分析,对发现的潜在漏洞进行验证,降低误报率。这些算法包括模糊测试、模式匹配、语义...
9. `robots.txt`:搜索引擎爬虫的指南文件,告诉爬虫哪些页面可以抓取,哪些禁止抓取。 10. `crossdomain.xml`:跨域资源共享(CORS)配置文件,允许不同域名之间进行数据交换,通常用于前端和后端之间的通信。 ...