client_body_in_single_buffer
‘client_body_in_single_buffer’ 指令用于控制是否将客户端请求体读取到单个缓冲区。 — NGINX HTTP Core
client_body_in_single_buffer
httpserverlocation
语法client_body_in_single_buffer on | off;
默认值off
上下文http, server, location
模块NGINX HTTP Core
参数flag
说明
‘client_body_in_single_buffer’ 指令用于优化 NGINX 在处理请求时对客户端请求体的处理。当该指令设置为 'on' 时,请求的完整主体会被读取到单个缓冲区,这可以减少管理多个缓冲区的开销,尤其是在请求体较小的情况下。这在服务器处理大量小请求的场景下可以提高性能。 另一方面,当设置为 'off' 时,NGINX 在某些情况下可能为请求体分配多个缓冲区,这使得对较大请求体的处理更灵活,但可能会为管理这些缓冲区引入额外开销。对于对延迟敏感、需要快速处理请求体的应用来说,使用单一缓冲区可能更有利。在配置该指令时应考虑应用的具体需求,尤其要权衡预期载荷大小与内存使用和性能之间的平衡。 该指令的参数是一个可启用或禁用的简单标志,可在 http、server 或 location 上下文中定义。这是调整 NGINX 请求体处理行为以匹配所服务应用工作负载特性的简单方法。
配置示例
server {
listen 80;
server_name example.com;
client_body_in_single_buffer on;
location /submit {
# additional configuration here
}
}⚠
如果请求体大小超过已配置的缓冲区大小,启用此指令仍可能导致溢出,从而使请求被错误处理。
⚠
在 location 上下文中使用此指令,若被更高层的上下文覆盖,可能无法达到预期效果。请确保各上下文的配置一致。