nginx
config_error
ai_generated
true
客户端请求体大小超过缓冲区限制
client intended to send too large body: 1048577 bytes exceeds client_body_buffer_size
ID: nginx/client-body-buffer-size-exceeded
90%修复率
84%置信度
1证据数
2023-09-05首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| nginx 1.18.0 | active | — | — | — |
| nginx 1.20.2 | active | — | — | — |
| nginx 1.24.0 | active | — | — | — |
根因分析
请求体大小超过client_body_buffer_size指令限制,导致nginx拒绝或缓冲到磁盘;如果同时超过client_body_max_size,nginx返回413。
English
The request body size exceeds the client_body_buffer_size directive, causing nginx to reject or buffer to disk; if client_body_max_size is also exceeded, nginx returns 413.
官方文档
https://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_buffer_size解决方案
-
Increase client_body_buffer_size in http, server, or location block: client_body_buffer_size 2m; This allows larger bodies to be buffered in memory.
-
If the body size is expected to be large, also increase client_body_max_size: client_body_max_size 10m; client_body_buffer_size 2m;
-
For specific endpoints, set a higher buffer size only for that location: location /upload { client_body_buffer_size 4m; client_body_max_size 100m; }
无效尝试
常见但无效的做法:
-
50% 失败
Setting to 0 disables buffering entirely, which may cause nginx to use temporary files inefficiently and slow down.
-
70% 失败
The error specifically mentions client_body_buffer_size; increasing max size alone does not resolve the buffer limit warning.
-
60% 失败
This may cause nginx to forward the body immediately but can lead to upstream timeouts or resource issues.