ingress报错414 Request-URI Too Large

avatar 2023年8月5日18:48:15 评论 183 次浏览

刚出现问题的时候我一直认为是我的nginx的配置问题,但是看了配置文件以为是配置的低了,就修改了一下参数,但是还是一样的报错,搞了半天,一直没解决,后来不使用域名解析的时候发现是可以的,怀疑的点是我的nginx和ingress,如果两个有一个有问题或者两个都有问题,我先把nginx配置的参数加入到ingress里,发现正常了。先看一下我的配置文件。

 [root@www.wulaoer.org ~]# kubectl edit configmaps -n kube-system nginx-configuration
 ......................................................
 data:
   allow-backend-server-header: "true"
   client-header-buffer-size: 4096k
   large-client-header-buffers: 4 4096k
   compute-full-forwarded-for: "true"
   enable-underscores-in-headers: "true"
   forwarded-for-header: X-Forwarded-For
   generate-request-id: "true"
   ignore-invalid-headers: "true"
   log-format-upstream: $remote_addr - [$remote_addr] - $remote_user [$time_local]
     "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $request_length
     $request_time [$proxy_upstream_name] $upstream_addr $upstream_response_length
     $upstream_response_time $upstream_status $req_id $host [$proxy_alternative_upstream_name]
   max-worker-connections: "65536"
   proxy-body-size: 500m
   proxy-connect-timeout: "10"
   reuse-port: "true"
   server-tokens: "false"
   ssl-redirect: "false"
   upstream-keepalive-timeout: "900"
   worker-cpu-affinity: auto
 ......................................................

通常出现414这个错误是因为请求头过大,导致的问题,但是get请求是有限制的默认,而且我的这个请求是post请求,post请求是没有限制的。出现这个错误的解决方式就是在nginx里增加HTTP请求头参数。

   client-header-buffer-size: 4096k
   large-client-header-buffers: 4 4096k

但是我在nginx里已经配置了,忘记了,我的域名请求是需要经过ingress的,所以说ingress也需要配置,否则错误在ingress里就会有体现了。

 11904#11904: *288525088 a client request body is buffered to a temporary file /tmp/nginx/client-body/0000062680

在ingress里配置添加414的错误后,需要注意,nginx里的配置和ingress的配置有点不太一样,连接符是下划线。

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: