k8s NGINX 入口控制器上的请求因“从上游读取响应标头时上游发送的标头太大”而失败

时间:2021-07-26 20:04:40

标签: nginx kubernetes nginx-ingress

当我尝试通过我的 NGINX 入口发送标头大于 4k 的请求时,它返回 502 错误:

[error] 39#39: *356 upstream sent too big header while reading response header from upstream, 
    client: <ip>,
    server: <server>, 
    request: "GET /path/ HTTP/1.1", 
    subrequest: "/_external-auth-Lw", 
    upstream: "<uri>", 
    host: "<host>"
[error] 39#39: *356 auth request unexpected status: 502 while sending to client, 
    client: <ip>, 
    server: <server>, 
    request: "GET /path/ HTTP/1.1", 
    host: "<host>"

我已按照有关如何通过在入口控制器 (proxy-buffer-size) 中配置 nginx.ingress.kubernetes.io/proxy-buffer-size: "16k" 来解决此问题的说明进行操作,但它似乎不起作用。我唯一能想到的是,它与子请求的 proxy-buffer-size 有关系,它似乎没有设置。

1 个答案:

答案 0 :(得分:1)

未在 NGINX 配置中的 /_external-auth-Lw 端点上设置 proxy_buffering 标头。从 v. 0.14.0 开始,问题已得到解决。