以每分钟请求数限制时,nginx 的令牌桶多久补充一次?

Mic*_*uch 6 nginx rate-limiting

我们决定在我们的网站上试验和限制每分钟请求数,而不是每秒请求数。但是,在这种情况下,我对突发参数感到困惑。

我的印象是,当您使用“nodelay”标志时,速率限制工具的作用就像一个令牌桶,而不是一个漏桶。既然如此,桶的大小等于突发参数,每次你违反策略(比如 1 req/s),你必须在桶中放入一个令牌。一旦存储桶已满(等于突发设置),您将看到一个 503 错误页面。

我还认为,一旦违规者停止违反政策,就会以 1 个令牌/秒的速度从存储桶中删除一个令牌,让他重新获得对该站点的访问权限。

假设我有上述正确,我的问题是当我开始调节每分钟访问时会发生什么?如果我们选择每分钟 60 个请求,令牌桶以什么速率补充?

Kyl*_*ndt 5

从我的实验来看,每分钟似乎只是一种以亚秒间隔写入速率的方法。所以 60r/m == 1r/s。这可以通过将其设置为每分钟 60 个请求,然后每秒启动 2 个请求来证明。它将从一开始就受到限制,而不仅仅是在提出 60 个请求之后。

话虽如此,我仍然不完全理解这一切是如何运作的:-)