track_uploads

`track_uploads` 指令可在指定的 location 中使用共享内存区域来跟踪 POST 请求的上传进度。

语法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 指令预先定义,否则跟踪将无法工作。

请根据应用的性能特性设置合适的超时,以避免跟踪数据被过早删除。

在高流量情况下,请监控内存使用,因为每个上传跟踪都会消耗共享内存资源。

← 返回所有指令