upload_pass

upload_pass 指令指定了一个 location,在上传文件后请求体会被转发到该 location。

语法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 指令已正确设置,因为文件上传将在将请求传递之前存储到定义的目录中。

← 返回所有指令