Nginx-Ingress如何配置qps限制

背景

从网上找了各种资料,都没说清楚如何配置k8s上的nginx-ingress的qps
试了n小时之后,搞定了。如下:

步骤

第一步:找到你的value.yaml文件

第二步:里面有个 controller.config 配置,增加一个 http-snippet ,如下

controller:
  config: {
    http-snippet: limit_req_zone $binary_remote_addr zone=one_zone:10m rate=1r/m;
  }

gpt对这个参数的解释如下,记得修改你的rate,不要照抄!!!

limit_req_zone: 这是 Nginx 模块中用于配置请求速率限制的指令。
$binary_remote_addr: 这是一个变量,表示客户端的二进制形式的远程地址。它用于唯一标识每个客户端的地址。
zone=one_zone:10m: 定义了一个名为 “one_zone” 的区域,它用于存储客户端请求的状态信息。这个区域的大小为 10 兆字节。
rate=1r/m: 设置请求速率限制为每分钟 1 次。这意味着同一个客户端在每分钟内最多只能发起一次请求。
总体而言,这个配置的作用是限制每个客户端在每分钟内的请求次数,以防止滥用或过度使用服务器资源。

第三步:
找到你的 ingress 规则集文件,类似如下,加一个configuration-snippet,设置你的请求限制

kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/configuration-snippet: limit_req zone=one_zone burst=1 nodelay; limit_req_status 429;

这里的zone和你上面的zone要一直嗷。
burst表示超负荷了之后,允许多少个在排队。

第四步
重启一下nginx服务。

附录

其他的官网链接我放在这里:
官网链接
我参考的博客A
我参考的博客B

补充:参数不懂的可以搜搜,再配合gpt问问就能设置成功

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值