增加 K8S 入口的 URL 长度限制

tou*_*onk 6 http kubernetes kubernetes-ingress nginx-ingress

我的 kubernetes 上的某个服务有一个 GET 请求 URL,长度约为 9k,而且该请求似乎卡在 Kubernetes 的入口中。当我尝试从 docker 内部或集群中的其他 docker 调用 url 时,它工作正常。但是,当我访问域名时,我收到以下响应标头:

在此输入图像描述

ili*_*efa 4

我认为你必须修改的参数是Client Body Buffer Size

设置每个位置读取客户端请求正文的缓冲区大小。如果请求正文大于缓冲区,则整个请求正文或仅其一部分将写入临时文件。默认情况下,缓冲区大小等于两个内存页。这是 x86、其他 32 位平台和 x86-64 上的 8K。在其他64位平台上通常是16K。此注释应用于入口规则中提供的每个位置

nginx.ingress.kubernetes.io/client-body-buffer-size: "1000" # 1000 bytes
nginx.ingress.kubernetes.io/client-body-buffer-size: 1k # 1 kilobyte
nginx.ingress.kubernetes.io/client-body-buffer-size: 1K # 1 kilobyte
nginx.ingress.kubernetes.io/client-body-buffer-size: 1m # 1 megabyte
Run Code Online (Sandbox Code Playgroud)

因此,您必须在 nginx 入口配置中添加注释。