kubernetes K8S ingress-nginx客户端请求正文缓冲到临时文件

q8l4jmvw  于 2023-03-12  发布在  Kubernetes
关注(0)|答案(1)|浏览(242)

在K8S部署中遇到了一个奇怪的警告,它是ingress-nginx,基本上错误是2023/02/16 15:56:03 [warn] 34#34: *7840048 a client request body is buffered to a temporary file /tmp/nginx/client-body/0000009342, client: <client ip>, server: <hostname>, request: "POST /next HTTP/2.0", host: "<hostname>", referrer: "<hostname>"
部署是使用helm进行的,使用默认值;helm chart的版本是ingress-nginx-4.3.0,app的版本是1.4.0。更烦人的是,当请求的正文小到500字节时,我会收到这个警告。
这一切的要点是,我不确定这个警告是否会导致以下情况:上游收到请求,但是客户端没有收到回复(甚至没有4xx/5xx错误).我已经疯狂地检查了日志,但是没有任何结论可以确定我是否可以安全地忽略这个警告。
谢谢!
在不同的K8S群集中部署了Helm图表,使用所有默认值,结果相同。将上游端的超时增加到60秒。

yws3nbqq

yws3nbqq1#

此警告消息意味着上载文件的大小大于为上载保留的内存缓冲区。
请参阅解释client_body_buffer_size工作原理的文档:
设置用于阅读客户机请求正文的缓冲区大小。如果请求正文大于缓冲区,则将整个正文或仅其一部分写入临时文件。默认情况下,缓冲区大小等于两个内存页。在x86、其他32位平台和x86-64上为8 K。在其他64位平台上通常为16 K。
因此,根据client_body_buffer_size降低上载文件的值以删除该警告。此缓冲区仅在上载请求正文时使用。上载完成后,内存将释放以用于另一个请求。

相关问题