track_uploads
`track_uploads` 指令可在指定的 location 中使用共享内存区域来跟踪 POST 请求的上传进度。
NGINX upload progress tracking module
·
httpserverlocation
语法track_uploads ;
默认值none
上下文http, server, location
参数2
说明
track_uploads 指令用于监控到 NGINX 服务器的正在进行的上传。它会登记每个落在定义上下文 (http, server, or location) 的 POST 请求,并允许 NGINX 实时跟踪这些上传的进度。要运行该指令,需要两个参数:一个现有共享内存区的名称(由 upload_progress 指令创建),以及一个 timeout 时长,用以决定保留上传进度信息的时间。在上传过程中,NGINX 将跟踪数据(包括已上传的数据量)存储在指定的 zone_name 中,从而可以通过每个请求随附的唯一标识符来监控上传状态。该进度随后可以以多种格式上报给客户端,例如 JSON 或 JavaScript Object Notation (JSONP)。
通过在专用共享内存区中注册上传,可以有效地管理多个并发上传。timeout 参数决定在上传完成后应保留跟踪信息的时长。如果某条记录超过该 timeout,则会从跟踪中移除,为新的上传腾出空间并防止内存过度消耗。用户在配置 timeout 时应谨慎,确保有足够的资源来处理预期的流量,并避免过早清除正在进行的上传跟踪。
配置示例
location /upload {
upload_progress uploads 1m;
track_uploads uploads 30s;
}⚠
确保指定的 <zone_name> 已通过 upload_progress 指令预先定义,否则跟踪将无法工作。
⚠
请根据应用的性能特性设置合适的超时,以避免跟踪数据被过早删除。
⚠
在高流量情况下,请监控内存使用,因为每个上传跟踪都会消耗共享内存资源。