upload_pass
upload_pass 指令指定了一个 location,在上传文件后请求体会被转发到该 location。
NGINX module for handling file uploads
·
httpserverlocationif in locationlimit_except
语法upload_pass ;
默认值none
上下文http, server, location, if in location, limit_except
参数1
说明
upload_pass 指令是 NGINX 的 upload 模块的一部分,该模块用于通过 multipart/form-data 编码来便捷地处理文件上传。当客户端上传文件时,NGINX 服务器会将这些文件存储到由 upload_store 指令指定的临时目录中。存储文件之后,请求体的内容会被修改:所有文件字段都会被移除,并被包含已上传文件关键信息的新的字段所替代。随后,这个被修改的请求会被转发到 upload_pass 指令指定的 location,从而在不包含原始文件内容的情况下对请求进行进一步处理。
需要注意的是,upload_pass 指令受限于特定的请求方法。它主要用于处理 POST 请求。如果遇到非 POST 的请求方法,该模块会返回 405 (Method Not Allowed) 错误。可以通过 error_page 指令来修改此行为,将不支持的方法重定向到其他处理器。此外,使用 upload_pass 指令需要与其他指令(例如 upload_store)配合,并具有良好的结构,以确保上传的文件在指定的 location 中被正确管理和处理,从而促进高效的文件处理并便于集成到现有的应用工作流中。
配置示例
location /upload {
upload_pass /handle_upload;
upload_store /tmp/uploads;
}⚠
确保 upload_pass 中指定的位置正确定义,并且在文件上传后能够处理该请求。
⚠
不要在非 POST 的请求方法中使用 upload_pass,除非你通过 error_page 针对这些方法进行专门处理。
⚠
确认 upload_store 指令已正确设置,因为文件上传将在将请求传递之前存储到定义的目录中。