upload_progress

'upload_progress' 指令在 NGINX 中跟踪文件上传的进度,允许客户端监控其上传状态。

语法upload_progress ;
默认值none
上下文http
参数2

说明

'upload_progress' 指令用于在 NGINX 中启用上传进度跟踪,通过分配共享内存来存储每个连接的跟踪信息。它在文件上传期间尤其有用,因为它通过唯一标识符向客户端提供实时统计信息(通过 web API),每个上传请求必须包含唯一标识符(作为 GET 参数或 HTTP header),以确保在报告进度时可以准确引用已上传的数据。

该指令需要两个参数:<zone_name>,用于指定用于存储上传进度数据的共享内存区的名称;以及 <zone_size>,指定该内存区的大小(以字节为单位)。一旦定义,NGINX 将使用该内存区来维护与每次上传相关的统计信息,包括当前状态、剩余字节数、总长度和其他关键指标。为了最大限度地提高效率并减少内存使用,应根据预期并发上传量适当地配置内存区大小。

结合 'track_uploads' 指令(该指令可对指向特定 location 的 POST 请求启用跟踪),'upload_progress' 能够在不解析上传内容的情况下有效监控上传,使其成为在需要进度报告的环境中管理文件上传(例如涉及大文件传输或视频上传的应用)的强大工具。

配置示例

upload_progress uploads 1m;

确保 zone 大小足以处理并发上传;大小不足可能导致数据丢失或被覆盖。

每个上传请求必须包含唯一标识符;否则无法进行跟踪。

在与某些 locations 配合使用时,确保响应已正确配置,以避免与其他指令发生冲突。

← 返回所有指令