Node.js api 具有多个速率限制的速率限制
Node.js api rate limiting with multiple rate limits
我正在开发一个多次点击 public API 的应用程序。但是,API 有多个我的应用程序必须满足的速率限制。
速率限制是
每 1 秒 20 个请求
和
每 2 分钟 100 个请求。
我一直在寻找一些速率限制包,但它们似乎都只能设置一个速率限制。我可以将速率限制设置为每秒 20 个请求,但是我可以在 5 秒内发出 100 个请求并违反第二个限制。我也可以将速率限制设置为每 2 分钟 100 个请求,但这会立即违反第一个限制。是否有一些软件包可以帮助我达到这两个速率限制?
如果您使用 this express middleware,您可以按照以下行设置 2 个限制:
var RateLimit = require('express-rate-limit');
var apiLimiterSeconds = new RateLimit({
windowMs: 1, // 1 second
max: 20,
delayMs: 0 // disabled
});
var apiLimiterMinutes = new RateLimit({
windowMs: 2*60, // 2 minutes
max: 100,
delayMs: 0 // disabled
});
// only apply to requests that begin with /api/
app.use('/api/', apiLimiterSeconds);
app.use('/api/', apiLimiterMinutes);
我正在开发一个多次点击 public API 的应用程序。但是,API 有多个我的应用程序必须满足的速率限制。
速率限制是 每 1 秒 20 个请求 和 每 2 分钟 100 个请求。
我一直在寻找一些速率限制包,但它们似乎都只能设置一个速率限制。我可以将速率限制设置为每秒 20 个请求,但是我可以在 5 秒内发出 100 个请求并违反第二个限制。我也可以将速率限制设置为每 2 分钟 100 个请求,但这会立即违反第一个限制。是否有一些软件包可以帮助我达到这两个速率限制?
如果您使用 this express middleware,您可以按照以下行设置 2 个限制:
var RateLimit = require('express-rate-limit');
var apiLimiterSeconds = new RateLimit({
windowMs: 1, // 1 second
max: 20,
delayMs: 0 // disabled
});
var apiLimiterMinutes = new RateLimit({
windowMs: 2*60, // 2 minutes
max: 100,
delayMs: 0 // disabled
});
// only apply to requests that begin with /api/
app.use('/api/', apiLimiterSeconds);
app.use('/api/', apiLimiterMinutes);