upload_max_part_header_len
`upload_max_part_header_len` 指令在 NGINX 中配置文件上传的 multipart 头部允许的最大长度。
NGINX module for handling file uploads
·
httpserverlocationif in locationlimit_except
语法upload_max_part_header_len number;
默认值none
上下文http, server, location, if in location, limit_except
参数1
说明
upload_max_part_header_len 指令是 NGINX 上传模块中的一个关键配置选项,专门用于定义 multipart/form-data 请求中每个部分的头部部分的最大允许长度。该指令具有重要作用,尤其在处理文件上传时,因为它有助于验证传入头部,这些头部包含关于上传文件的重要信息,如文件名、内容类型及其他元数据。如果头部超过指定长度,请求将被拒绝,从而有助于抵御潜在的基于头部的攻击或可能破坏服务器运行的格式错误请求。
此外,该指令可以在多种上下文中使用,包括 http、server 和 location,这允许根据所服务应用的具体需求灵活配置。跟在指令后的参数是一个 integer,表示以 bytes 为单位的最大长度。该指令的默认值是 none,意味着除非显式设置,否则长度没有上限,从而确保应用可以根据其自身的安全性和性能要求自定义头部处理。注意在设置该值时应谨慎权衡功能与安全,以减轻与极大头部相关的任何风险。
配置示例
server {
listen 80;
server_name example.com;
location /upload {
upload_pass /upload_handler;
upload_max_part_header_len 100k;
upload_store /tmp/uploads;
}
}⚠
将 upload_max_part_header_len 设置得太低可能会导致合法请求被拒绝,特别是在文件元数据预计较长时。
⚠
该指令不影响整体请求体大小,只影响与 multipart 请求各个部分相关的头部。