Nginx默认client_body_buffer_size为8KB,控制请求体内存缓冲上限,超限则写临时文件;过小增I/O,过大耗内存;需据业务调整,且不可超过client_max_body_size。

Nginx 安装后默认的 client_body_buffer_size 值是 8KB(即 8192 字节),适用于大多数小请求体场景,比如普通表单提交、JSON API 请求等。
这个值影响什么?
该指令控制 Nginx 在内存中缓存客户端请求体(request body)的最大大小。当请求体(如 POST 数据)不超过该值时,Nginx 直接在内存中处理;超过则会写入临时文件(由 client_body_temp_path 指定,默认在 nginx/client_body_temp/ 下)。
- 太小:频繁写临时文件,增加磁盘 I/O 和延迟
- 太大:浪费内存,尤其在高并发下可能积压较多缓冲区
- 上传大文件或含大量文本的请求(如富文本、批量 JSON)容易触发临时文件写入
如何查看当前值?
可在 Nginx 配置中显式查找,或用以下命令快速确认:
nginx -T 2>/dev/null | grep client_body_buffer_size
若无输出,说明未自定义,即使用默认 8k。
常见调整建议
根据业务实际调整更合理:
- 纯 API 服务(JSON 小请求):保持
8k或略增至16k即可 - 含文件上传的后台接口:建议设为
128k~512k,避免小文件也落盘 - 需支持大文本提交(如日志上报、代码片段):可设为
1m,但需同步检查client_max_body_size - 注意:
client_body_buffer_size不能大于client_max_body_size,否则无效
配置示例(放在 http / server / location 块中)
例如在 server 块内设置:
client_body_buffer_size 256k;
修改后需重载生效:nginx -s reload。










