请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

limit_req_zone 配置的实现的原理请教

图片描述
老师请教一下这个问题。谢谢老师!我很想去看些设定的这个zone存储在哪里?想cat一下这个存储的内容。
并且我还想请教这个设置的生产环境用的多吗?在生产环境设置这个的限制主要的考虑是什么?
现在的互联网的需求都是快速响应,做了这个限制不是很多客户端被拦截掉?这个跟我们追求的用户体验相违背啊?

正在回答

1回答

你好,这个问题我一个个回答;

(1)我很想去看些设定的这个zone存储在哪里?

这个zone申请的内存空间,所以不是通过cat命令能读到的。

(2)并且我还想请教这个设置的生产环境用的多吗?在生产环境设置这个的限制主要的考虑是什么?

这个主要取决于应用场景,我的经验来看,如:网站有发现固定IP的大量恶意频繁请求,那么是可以通过这个limit模块有效防控的,但这个限制频率需要设置合理,以免出现误杀正常请求。

(3)现在的互联网的需求都是快速响应,做了这个限制不是很多客户端被拦截掉?这个跟我们追求的用户体验相违背啊?

你的观点有道理,如果你想做到精准定位到用户行为来作限制,那Nginx这个模块就不合适了,因为Nginx通常基于常见的变量(如:remote_addr)来作限制。

(4)关于Nginx限速原理

Nginx限速使用 Leaky(唝水桶)算法,比喻为水桶顶部倒水,底部漏水,如果倒入水的速率超过漏水的速度,则水桶漏出。如下图:

https://img1.sycdn.imooc.com//szimg/5b9a4fe00001154905060304.jpg

0 回复 有任何疑惑可以回复我~
  • 提问者 mongo_m #1
    谢谢老师!你说的leaky算法后我大体理解了这个限速的实现来由。现在我打算查看下源码查看具体的实现是不是跟我猜想的一样。等阅读完成后再来这里贴出来我的笔记。再谢谢老师的提点!
    回复 有任何疑惑可以回复我~ 2018-09-13 20:46:06
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信