当前位置:论坛首页 > Linux面板 > 建议

有感而发提个建议。

发表在 Linux面板2017-9-5 18:14 [复制链接] 1 1838

建议: 增加根据UA限制访问频率的功能。

已经实现的启用流量控制功能,虽然可以控制单IP并发,但对于某些狂暴属性的蜘蛛来说,是毫无用处的。


最近站点遇到sogou蜘蛛狂暴,间歇性的发起在1秒内,数十个IP同时抓取的情况,负载最高可以到60,真的是无情。因为网站在搜狗这边每天还能有3K左右的IP,所以单纯靠屏蔽UA访问的方法是不理智的。所以我就在想能否通过识别固定的UA,来限制访问频率。后来经过一下午的百度(因为我是个美术生……哎~),目前来看是实现了我想要的结果:限制搜狗蜘蛛最多每秒请求3次,超量的返回503。


那么问题来了,
我在百度文章和发帖求助的时候,很多人表示都有过类似经历,被yisouspider或baidu或sogou长期折磨过,并且更有甚者可以导致主机被暂停,说白了都是小白,或者直接屏蔽UA的大神。 所以我觉得这个功能是有必要做出来,这样类似我这样的小白,也可以简单高效的防止意外的发生,更安心的做网站。


因为考虑到这不算是个难事,所以就来发帖,希望技术哥可以将它加入计划。


输入UA后,设置访问频率的限制,确认。


====
附带我今天下午的百度结果:
1、如果你需要直接屏蔽某辣鸡蜘蛛的UA,比如国外的搜索引擎,或者其他蜘蛛小白的恶意抓取:
if ($http_user_agent ~* (Bench|bench|Apache|apache) ) {        return 503;}


放置到配置文件中就好。


2、如果需要像我一样限制某UA的访问频率:
#全局配置 (NGINX的配置文件)

limit_req_zone $anti_spider zone=anti_spider:10m rate=15r/m;


#某个server中 (具体网站的配置文件)

limit_req zone=anti_spider burst=5 nodelay;
if ($http_user_agent ~* "xxspider") {
set $anti_spider $http_user_agent;
}

15r/m 的意思是每分钟15次,还可以设定为 3r/s  就是每秒3次。

其他看自己了,再见!






使用道具 举报 只看该作者 回复
发表于 2017-9-7 15:53:48 | 显示全部楼层
写的很认真 ,感恩你的分享,但这个是偏小众的功能,半年内不会考虑 谢谢你的支持。
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

立即付费处理

工作时间:09:00至24:00

快速回复 返回顶部 返回列表