网站首页 > 技术教程 正文
property_rate_limiting 防刷插件
1 nginx 【init phase】
1.1 配置插件优先级1000
PropertyRateLimitingHandler.PRIORITY = 1000
注意:priority值越大优先级越高,针对相同phase阶段内的插件生效。
1.2 重写access函数
插件处于【access phase】阶段
2 此插件的处理逻辑
通过 提取器extractor从以下对象中提取关键参数项
- Query
- Header
- Cookie
- PostParams
- Host
- URI
- IP
- Method
用于标记请求,并为此请求记录访问次数,当具有某些特征的请求达到单位时间内访问次数限制的时候,既直接返回429(访问次数太多)应答,不再转发请求到后端服务。
注意:此插件的功能就在于标记请求,限制各个被标记请求单位时间(秒,分钟,小时,天)的访问次数;关键点就是此插件并不是达到访问次数限制后,整个接口都限制,只是限制具有某些特征参数的接口请求。
场景:结合公司saas业务,不同商家的前端访问域名相同,通过不同的flag来来区分商家,可以将此flag作为关键参数标记不同商家的访问请求,进而限制单位时间内的访问速率,如一分钟内访问接口不超过10次,一天访问总次数不超过5000次。
3 dashboard配置
3.1 启用 property_rate_limiting插件
3.2 创建选择器,选择“自定义流量”
尽量不要用“全流量”,相率更高一些
3.3 提取 flag请求参数来标记请求
限制访问频率为1分钟内10次,超过则返回 429。
4 代码逻辑
- nginx.conf 配置文件中 http节,指定 lua_shared_dict property_rate_limiting 10M空间,用来本地存放记录请求访问次数。
- extractor提取的参数作为key,次数作为value存储在property_rate_limiting中,在首次设置值的同时会指定过期时间,过期时间根据频率限制的秒,分钟,小时,还是天来区分,首次设置次数值的时候指定expire过期时间,之后则是更新。时间到了下一个周期时,会从新设定,上一个周期的值会因为过期自动被清理掉。
猜你喜欢
- 2024-10-11 如何使用Nginx对Artifactory进行http应用
- 2024-10-11 IntelliJ IDEA必装插件以及SpringBoot使用小技巧合集
- 2024-10-11 WeCube 2.8.0 发布,一站式IT架构管理和运维工具
- 2024-10-11 Kong系列(三)——Kong插件「IP Restriction」使用
- 2024-10-11 docker开箱即用的java版本nginx-clojure实现负载均衡
- 2024-10-11 RTMP和RTSP的区别(rtp rtmp区别)
- 2024-10-11 「开源资讯」njs 0.4.1 发布,nginx 的 JavaScript 脚本语言
- 2024-10-11 Nginx如何支持OpenTracing - Jaeger
- 2024-09-22 免费又好用的缓存插件,非Speed Optimizer莫属
- 2024-09-22 web中间件nginx性能分析与调优(nginx中间件怎么看版本号?)
你 发表评论:
欢迎- 最近发表
-
- Win10 TH2正式版官方ESD映像转换ISO镜像方法详解
- 使用iso镜像升级到Windows 10的步骤
- macOS Ventura 13.2 (22D49) Boot ISO 原版可引导镜像
- 安利一个用ISO镜像文件制作引导U盘的的小工具RUFUS
- CentOS 7使用ISO镜像配置本地yum源
- 用于x86平台的安卓9.0 ISO镜像发布下载:通吃I/A/N、完全免费
- AlmaLinux 9.6发布:升级工具、初步支持IBM Power虚拟化技术
- Rufus写入工具简洁介绍与教程(写入模式)
- 新硬件也能安装使用了,Edge版Linux Mint 21.3镜像发布
- 开源工程师:Ubuntu应该抛弃32位ISO镜像
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)