client_header_buffer_size
假设client_header_buffer_size的配置为1k,如果(请求行+请求头)的大小如果没超过1k,放行请求。如果(请求行+请求头)的大小如果超过1k,则以large_client_header_buffers配置为准
large_client_header_buffers
假设large_client_header_buffers的配置为4 8k,则对请求有如下要求
- 请求行(request line)的大小不能超过8k,否则返回414错误
- 请求头(request header)中的每一个头部字段的大小不能超过8k,否则返回400错误(实际是494错误,但nginx统一返回400了)
curl -H "header1=aaa" -H "header2=bbb" -v http://127.0.0.1/
,这里的header1=xxx和header2=xxx就是请求头中的头部字段 - (请求行+请求头)的大小不能超过32k(4 * 8k)
设置修改:
http{
client_header_buffer_size 1;
large_client_header_buffers 4 256k;
......
}
nginx -s reload