我需要在部署在Kubernetes集群(EKS(上的应用程序上实现速率限制(基于URL和路径(。
我正在寻找一种管理方式,它涉及最少的脚本编写,并提供一个接口来管理不同应用程序的速率限制。
该系统应该能够在企业一级准确地工作。
有人能给我建议一下实现它所要遵循的路径/工具/框架吗?
Rate-limiting
通过使用正确的注释在NGINX Ingress中可用。可用选项包括:
nginx.ingress.kubernetes.io/limit-connections
:并发数允许来自单个IP地址的连接。503错误为超过此限制时返回nginx.ingress.kubernetes.io/limit-rps
:接受的请求数每秒从给定IP。突发限制设置为此限制乘以突发乘数,默认乘数为5。当客户端超过此限制时,返回limit-req状态代码默认值:503nginx.ingress.kubernetes.io/limit-rpm
:数量每分钟接受来自给定IP的请求。突发限制为设置为该极限乘以突发乘数,默认值乘数是5。当客户端超过该限制时,limit-req状态代码默认值:返回503nginx.ingress.kubernetes.io/limit-burst-multiplier
:突发大小的极限速率。默认突发乘法器是5,此注释将覆盖默认的乘数。当客户端超过这个limit,limit-req状态代码默认值:503返回nginx.ingress.kubernetes.io/limit-rate-after
:初始数量千字节之后,对给定的连接将受到速率限制。必须使用此功能启用了代理缓冲nginx.ingress.kubernetes.io/limit-rate
:每个允许发送到给定连接的第二个。零值禁用速率限制。此功能必须与一起使用已启用代理缓冲nginx.ingress.kubernetes.io/limit-whitelist
:客户端IP源范围被排除在速率限制之外。该值以逗号分隔CIDR列表
您可以在这里阅读更多关于NGINX速率限制的信息,也可以在本指南中阅读kubernetes中的NGINX限速信息。