Nginx-Ingress如何配置qps限制
从网上找了各种资料,都没说清楚如何配置k8s上的nginx-ingress的qps试了n小时之后,搞定了。
·
背景
从网上找了各种资料,都没说清楚如何配置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问问就能设置成功
更多推荐
已为社区贡献1条内容
所有评论(0)