large_client_header_buffers
'large_client_header_buffers' 指令在 NGINX 中配置用于读取大型客户端请求头的缓冲区数量和大小。 — NGINX HTTP Core
large_client_header_buffers
httpserver
语法large_client_header_buffers number size;
默认值4 8k | 4 16k
上下文http, server
模块NGINX HTTP Core
参数2
说明
'large_client_header_buffers' 指令用于设置为读取超过默认大小的客户端请求头而分配的缓冲区的最大数量和每个缓冲区的大小。当处理发送异常大的头部的客户端(例如包含大量 cookies 或者超长 URL 的客户端)时,这一点尤其有用。该指令有两个参数:第一个指定缓冲区的数量,第二个指定每个缓冲区的大小。\n\n当 NGINX 收到请求时,它会尝试将头部读入指定的缓冲区。如果总头部大小超过该指令分配的容量,NGINX 将返回 '400 Bad Request' 错误。管理员可以根据预期的客户端头部大小调整这些值。例如,如果服务器预计由于大量用户状态跟踪而产生较大的 cookies,增大缓冲区大小可以帮助避免不必要的错误并改善用户体验。\n\n为了有效利用此指令,监控实际的头部大小并相应调整缓冲区大小非常重要。同样,请记住在没有必要的情况下设置过大的缓冲区可能导致内存使用增加并引发性能问题。
配置示例
http {
large_client_header_buffers 16 32k;
}⚠
将缓冲区大小设置得过高可能导致内存问题,尤其是在高负载下。
⚠
如果分配的缓冲区不足以容纳头部大小,客户端会收到 400 Bad Request 错误。
⚠
该指令在 http 上下文中全局生效,也可以在特定的 server 块中设置。注意可能的设置冲突。