track_uploads
Директива `track_uploads` позволяет отслеживать прогресс загрузки POST-запросов в указанном location с использованием зоны общей памяти.
Описание
Директива track_uploads используется для мониторинга текущих загрузок на сервер NGINX. Она регистрирует каждый POST‑запрос, поступающий в заданный контекст (http, server или location), и позволяет 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, иначе отслеживание не будет работать.
Обязательно установите соответствующий таймаут с учётом характеристик производительности вашего приложения, чтобы избежать преждевременного удаления данных отслеживания.
В случае высокого трафика контролируйте использование памяти, так как каждая запись о загрузке потребляет ресурсы разделяемой памяти.