我可以配置Kong的rate limiting plugin,因此它会对给定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个请求/秒的速率限制这可能与孔有关吗?我看到open issue与此相关,但有没有解决方法?
答案 0 :(得分:1)
您是否可以将每个端点设置为Kong API,然后对每个API应用速率限制?
答案 1 :(得分:1)
直到Kong .13,这是不可能的。但是,在Kong .13中,API object已分为两部分,routes和services。
使用这些工具,您应该能够为API中的不同端点应用不同的插件。
答案 2 :(得分: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启用身份验证,然后为每个consumer / api分配费率。
这将使您能够控制来自消费者的请求,以便他们无法从多个IP执行额外请求。 (如果你想)