2

我可以配置 Kong 的速率限制插件,以便它对给定 API 中的每个端点实施限制,如下所示:

$ curl -X POST http://kong:8001/apis/{api}/plugins \
    --data "name=rate-limiting" \
    --data "config.second=5"

但是,我想为每个端点配置不同的速率限制。例如,我想允许:

  • http://localhost:8000/endpoint1使用每个 IP 5 个请求/秒的速率限制
  • http://localhost:8000/endpoint2使用每个 IP 10 个请求/秒的速率限制

这对Kong有可能吗?我看到了一个与此相关的未解决问题,但有任何解决方法吗?

4

3 回答 3

1

在 Kong .13 之前,这是不可能的。然而,在Kong .13中,API 对象被分成两部分,路由服务

使用这些工具,您应该能够为 API 中的不同端点应用不同的插件。

于 2018-04-19T17:56:58.140 回答
1

你能把每个端点都变成一个 Kong API,然后对每个 API 应用速率限制吗?

于 2017-11-21T19:15:42.553 回答
0

我相信 Kong 不能在 IP 模式下工作。但是要克服的是您将身份验证和速率限制结合在一起。结合这个你可以说

API 1 - limited to 5 request/second for consumer 1
API 1 (again) - limited to 10 request/second for consumer 2
API 2 - limited to 25 request/second from consumer 1

要实现这一点,您需要在 kong 中为要控制的 API 启用身份验证,然后为每个使用者/api 分配费率。

这将使您受益于控制来自消费者的请求,这样他们就无法从多个 IP 发出额外的请求。(如果你想)

于 2017-12-13T10:51:07.117 回答