简单介绍使用Nginx限制百度蜘蛛频繁抓取的问题

news/2024/7/3 0:36:09
这篇文章主要介绍了使用Nginx限制百度蜘蛛频繁抓取的问题,百度蜘蛛对网站的抓取频率高和抓取量骤增导致服务器负载高,经常收到警告信息,每分钟允许百度蜘蛛抓取200次,超过频率限制的返回503,对Nginx限制蜘蛛频繁抓取相关知识感兴趣的朋友一起看看吧

百度蜘蛛对网站的抓取频率高和抓取量骤增导致服务器负载高,经常收到警告信息。最终采用nginx的ngx_http_limit_req_module模块限制了百度蜘蛛的抓取频率。每分钟允许百度蜘蛛抓取200次,超过频率限制的返回503。

limit_req_zone

语法: limit_req_zone $variable zone=name:size rate=rate;

默认值: none

配置段: http

设置一块共享内存限制域的参数,它可以用来保存键值的状态。 它特别保存了当前超出请求的数量。 键的值就是指定的变量(空值不会被计算)。

这里键值使用客户端的agent, 使用$http_user_agent变量。 如果限制域的存储空间耗尽了,对于后续所有请求,服务器都会返回 503 (Service Temporarily Unavailable)错误。

请求频率可以设置为每秒几次(r/s)。如果请求的频率不到每秒一次, 你可以设置每分钟几次(r/m)。比如每秒半次就是30r/m。

全局配置nginx.conf

limit_req_zone $ning_spider zone=ning_spider:10m rate=200r/m;

某个server中

if ($http_user_agent ~* "baiduspider|Googlebot") {set $ning_spider $http_user_agent;}limit_req zone=ning_spider burst=5 nodelay;

参数说明:

指令linit_req_zone 中的rate=200r/m 表示每分钟只能处理200个请求。

指令limit_req 中的burst=5 表示最大并发为5。即同一时间只能同时处理5个请求。

指令limit_req 中的nodelay 表示当已经达到burst值时,再来新请求时,直接返回503IF部分用于判断是否是百度蜘蛛的user agent。如果是,就对变量$ning_spider赋值。这样就做到了只对百度蜘蛛进行限制了。

测试,速率达不上可以同时开多个以下脚本测试

[root@localhost ~]# cat test.sh
#! /bin/bash  
sum=0;  
for i in {1..1000}  
do 
((sum = sum + i))  
curl -I -A "Baiduspider" http://www.hezongtianxia.com
curl -I -A "Sogou web spider" http://www.hezongtianxia.com
done 
echo $sum
tailf /home/wwwlog/access.log|grep 503

到此这篇关于使用Nginx限制百度蜘蛛频繁抓取 的文章就介绍到这了。


http://lihuaxi.xjx100.cn/news/282061.html

相关文章

表情的机器自动识别(有图有真相)

这幅图片是我自己用C#编写的表情的机器自动识别。主要是AdaBoost的实现,训练做了几个不同版本:线性、并行和分布式,训练数据集采用的JAFFE。 有朋友问这东西有什么用处,其实主要是为了玩而已了。这是基于Paul Ekman那本著名的《情…

易想团购 注入 user.php,易想团购系统通杀SQL注入漏洞分析及利用漏洞预警 -电脑资料...

刚打开红黑看到J8基友写的一个{易想团购系统 最新版 通杀}的文章,看他贴的代码里面有个get_client_ip()函数,哈哈,我猜没过滤,果断下了一套程序,找到get_client_ip()函数。// 获取客户端IP地址function get_client_ip(…

图像处理基础:颜色空间及其OpenCV实现

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达作者:Soumyadip Sarkar编译:ronghuaiyang转自:AI公园导读对图像的颜色空间做了一个概念性的介绍,并通过代码的方式可视化了…

50行Python代码,获取公众号全部文章

作者 | 胖虎转载自Python3X(ID: python3xxx )爬取公众号的方式常见的有两种:通过搜狗搜索去获取,缺点是只能获取最新的十条推送文章。通过微信公众号的素材管理,获取公众号文章。缺点是需要申请自己的公众号。今天介绍…

借助阿里云数加,小小的美甲行业被美甲帮玩出了天价。

原文链接:http://click.aliyun.com/m/13860/ 免费开通大数据服务:https://www.aliyun.com/product/odps“数加对于创业公司来说是一个非常好的平台,可以在有限的投入下,充分地享受到阿里云已经有的技术和经验,站在巨人…

Emptyproject分析

Emptyproject分析(SimpleSample)1,InitApp()WinMain中有一个InitApp(),在sample中存在,但是在emptyproject中没有,该函数是用于设定已经声明的一些一般变量的初始值的。比如某些按钮。2,IsDeviceAcceptable()被WinMain…

oracle9201怎么安装,Solaris10上安装64位Oracle9201

根据Oracle官方文档的步骤进行安装,首先是对Solaris10上系统需求的检查:# /usr/sbin/prtconf | grep "Memory size"Memory size: 16384 Megabytes# /usr/sbin/swap -lswapfile dev swaplo blocks free/dev/dsk/c1t0d0s1 118,9 16 36877808 368…

简单介绍python中的单向链表实现

大家好,本篇文章主要讲的是python中的单向链表实现,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下 一、单向链表概念 单向链表的链接方向是单向的,由结点构成,head指针指向第一个成为head结点,而…