【发布时间】:2021-07-27 09:56:05
【问题描述】:
我正在尝试根据授权标头中包含的令牌来限制 GRPC 连接数。我在 Nginx configmap 和 Ingress 注释中尝试了以下设置,但 Nginx 速率限制不起作用。
---
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-ingress-controller
namespace: default
data:
http-snippet: |
limit_req_zone $http_authorization zone=zone-1:20m rate=10r/m;
limit_req_zone $http_token zone=zone-2:20m rate=10r/m;
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/backend-protocol: GRPC
nginx.ingress.kubernetes.io/configuration-snippet: |
limit_req zone=zone-1;
limit_req_log_level notice;
limit_req_status 429;
我尝试让 Nginx 入口控制器根据 $http_authorization 变量中的值限制 GRPC/HTTP2 流连接的速率。我已修改 Nginx log_format 以记录 $http_authorization 值并观察 Nginx 接收该值。我面临的问题是,由于某种原因,速率限制规则没有被触发。
这是正确的方法吗?
任何帮助和反馈将不胜感激!
谢谢
【问题讨论】:
标签: nginx kubernetes grpc http2 nginx-ingress