限制客户端缓冲
ngx_http_core_module
1、client_body_buffer_size
(1)设置用于读取客户端请求体的缓冲区大小
(2)如果请求正文大于缓冲区,整个请求体或其部分将被写入一个临时文件中
(3)默认情况下,缓冲区的大小等于两个内存页。在 x86、其他 32 位平台、x86-64 上是 8K,在其他 64 位平台上通常为 16K
(4)语法
client_body_buffer_size size;
(5)默认值
client_body_buffer_size 8k|16k;
(6)位置:http、server、location
2、client_header_buffer_size
(1)设置用于读取客户端请求头的缓冲区大小
(2)对于大多数请求,1K 字节的缓冲区足够,但若一个请求包括长的 cookies,或者来自 WAP 客户端,它可能不适合在 1K 内
(3)如果一个请求行或一个请求头字段不适合这个缓冲区,那么就会分配更大的缓冲区,由 large_client_header_buffers 指令配置
(4)如果该指令是在服务器层面指定的,可以使用默认服务器的值
(5)语法
client_header_buffer_size size;
(6)默认值
client_header_buffer_size 1k;
(7)位置:http、server
3、client_max_body_size
(1)设置客户端请求体的最大大小
(2)如果请求中的大小超过配置值,413(请求实体过大)的错误会返回给客户端
(3)注意:浏览器不能正确显示这个错误
(4)将大小设置为 0,将禁止检查客户端请求体的大小
(5)语法
client_max_body_size size;
(6)默认值
client_max_body_size 1m;
(7)位置:http、server、location
4、client_body_timeout
(1)定义读取客户端请求体的超时时间
(2)超时仅设置为两个连续读取操作之间的时间段,而不是整个请求体的传输
(3)如果客户端在此时间内未传输任何内容,则请求将终止,并显示 408(请求超时)错误
(4)语法
client_body_timeout time;
(5)默认值
client_body_timeout 60s;
(6)位置:http、server、location
5、client_header_timeout
(1) 定义读取客户端请求头的超时时间
(2)如果客户端未在此时间内传输整个请求头,则请求将终止并显示 408(请求超时)错误
(3)语法
client_header_timeout time;
(4)默认值
client_header_timeout 60s;
(5)位置:http、server
6、client_body_temp_path path
(1)定义用于存储保存客户端请求体的临时文件的目录
(2)最多可以在指定目录下使用三级子目录层次结构
(3)语法
client_body_temp_path path [level1 [level2 [level3]]];
(4)默认值
client_body_temp_path client_body_temp;
(5)位置:http、server、location
7、client_body_in_file_only
(1)确定 nginx 是否应将整个客户端请求体保存到文件中
(2)此指令可以在调试期间使用,也可以在使用
(3)如果设置为 on,则在处理请求后不会删除临时文件
(4)值为 clean,将导致删除请求处理后留下的临时文件
(5)语法
client_body_in_file_only on | clean | off;
(6)默认值
client_body_in_file_only off;
(7)位置:http、server、location
8、client_body_in_single_buffer
(1)确定 nginx 是否应将整个客户端请求体保存在单个缓冲区中
(2)使用 $request_body 变量时,建议使用该指令,以节省所涉及的复制操作数
(3)语法
client_body_in_single_buffer on | off;
(4)默认值
client_body_in_single_buffer off;
(5)位置:http、server、location
9、large_client_header_buffers
(1)设置用于读取大型客户端请求头的缓冲区的最大数量和大小
(2)请求行不能超过一个缓冲区的大小,否则 414(请求-URI 太大)错误将返回到客户端
(3)请求头字段也不能超过一个缓冲区的大小,否则 400(错误请求)错误将返回到客户端
(4)缓冲区仅按需分配
(5)默认情况下,缓冲区大小等于 8K 字节
(6)如果在请求处理结束后,连接转换为保持活动状态,则会释放这些缓冲区
(7)如果在服务器级别指定了该指令,则可以使用默认服务器中的值
(8)语法
large_client_header_buffers number size;
(9)默认值
large_client_header_buffers 4 8k;
(10)位置:http、server
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战