- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章nginx中的limit_req限速设置配置示例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
WIKI:
http://wiki.nginx.org/HttpLimitReqModule 。
漏桶原理(leaky bucket):
http://en.wikipedia.org/wiki/Leaky_bucket 。
实例:
- #以用户二进制IP地址,定义三个漏桶,滴落速率1-3req/sec,桶空间1m,1M能保持大约16000个(IP)状态
- limit_req_zone $binary_remote_addr zone=qps1:1m rate=1r/s;
- limit_req_zone $binary_remote_addr zone=qps2:1m rate=2r/s;
- limit_req_zone $binary_remote_addr zone=qps3:1m rate=3r/s;
- server {
- #速率qps=1,峰值burst=5,延迟请求
- #严格按照漏桶速率qps=1处理每秒请求
- #在峰值burst=5以内的并发请求,会被挂起,延迟处理
- #超出请求数限制则直接返回503
- #客户端只要控制并发在峰值[burst]内,就不会触发limit_req_error_log
- # 例1:发起一个并发请求=6,拒绝1个,处理1个,进入延迟队列4个:
- #time request refuse sucess delay
- #00:01 6 1 1 4
- #00:02 0 0 1 3
- #00:03 0 0 1 2
- #00:04 0 0 1 1
- #00:05 0 0 1 0
- location /delay {
- limit_req zone=qps1 burst=5;
- }
- #速率qps=1,峰值burst=5,不延迟请求
- #加了nodelay之后,漏桶控制一段时长内的平均qps = 漏桶速率,允许瞬时的峰值qps > 漏桶qps
- #所以峰值时的最高qps=(brust+qps-1)=5
- #请求不会被delay,要么处理,要么直接返回503
- #客户端需要控制qps每秒请求数,才不会触发limit_req_error_log
- # 例2:每隔5秒发起一次达到峰值的并发请求,由于时间段内平均qps=1 所以仍然符合漏桶速率:
- #time request refuse sucess
- #00:01 5 0 5
- #00:05 5 0 5
- #00:10 5 0 5
- # 例3:连续每秒发起并发请求=5,由于时间段内平均qps>>1,超出的请求被拒绝:
- #time request refuse sucess
- #00:01 5 0 5
- #00:02 5 4 1
- #00:03 5 4 1
- location /nodelay {
- limit_req zone=qps1 burst=5 nodelay;
- }
- }
最后此篇关于nginx中的limit_req限速设置配置示例的文章就讲到这里了,如果你想了解更多关于nginx中的limit_req限速设置配置示例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我担心 Yii2 限速 api? 什么是速率限制 api,为什么使用它? 以下是来自 Yii2 的一些方法 yii 大师能否用简单的话解释一下这些方法,我应该在何时何地在我的 api 中使用速率限制?
我正在使用 Brad Jasper 和 Trevor Lohrbeer (https://github.com/bradjasper/ImportJSON) 的 ImportJSON 库的未修改版本
如果我有一个无限的 while 循环,我怎样才能让循环从循环迭代开始后每 10 分钟运行一次下一次迭代? 如果第一次迭代在凌晨 1:00 开始并在凌晨 1:09 结束,则下一次迭代应在凌晨 1:10
我们有个服务以类似 SideCar 的方式和应用一起运行,SideCar 和应用通过 Unix Domain Socket 进行通讯。为了方便用户,在开发的时候不必在自己的开发环境中跑一个 Si
我想根据运行时确定的某些参数对 Celery 任务进行速率限制。例如:如果参数为 1,则速率限制可能为 100。如果参数为 2,则速率限制可能为 25。此外,我希望能够在运行时修改这些速率限制。 ce
我是一名优秀的程序员,十分优秀!