unzstd

Директива `unzstd` включает или отключает распаковку (декомпрессию) ответов, сжатых Zstandard, для клиентов, которые не поддерживают кодирование Zstandard.

Синтаксисunzstd on | off;
По умолчаниюoff
Контекстhttp, server, location
Аргументыflag

Описание

Директива unzstd — важная функция NGINX-модуля ngx_http_unzstd_filter_module, предназначенная для обеспечения совместимости с клиентами, которые не умеют обрабатывать сжатие Zstandard (Zstd). Когда она включена, NGINX автоматически распаковывает (декомпрессирует) ответы, отправленные с заголовком Content-Encoding: zstd. Это особенно важно для веб-клиентов, которые поддерживают только устаревшие форматы сжатия, поскольку обеспечивает их возможность корректно получать и обрабатывать веб-контент, сжатый с помощью Zstd.

Важным аспектом этой директивы является её флаговый параметр, который может принимать значения on или off. Установка unzstd в on заставляет NGINX обрабатывать входящие запросы и ответы, специально проверяя, помечены ли они как сжатые Zstd. Если такой ответ обнаружен, он будет декомпрессирован перед отправкой клиенту, что обеспечивает беспрепятственный доступ к ресурсу без необходимости встроенной поддержки Zstd у клиента. Напротив, при значении off модуль воздерживается от каких-либо операций декомпрессии, что может привести к тому, что клиенты получат сжатые данные, которые не смогут декодировать.

Эту директиву можно задавать на разных уровнях конфигурации NGINX, в частности в блоках http, server или location, что даёт гибкость при включении декомпрессии для конкретных контекстов в зависимости от потребностей приложения. Для полноценного управления производительностью и ресурсами она дополняется двумя другими директивами: unzstd_force — для условного принудительного включения декомпрессии, и unzstd_buffers — для управления ёмкостью буферов, используемых при операциях декомпрессии. Это не только обеспечивает эффективную обработку данных, но и помогает оптимизировать использование серверных ресурсов.

Пример конфига

server {
    listen 127.0.0.1:8080;
    server_name localhost;

    location / {
        # Enable Zstd decompression for clients that do not support Zstd compression
        unzstd on;

        proxy_pass http://foo.com;
    }
}

Убедитесь, что библиотека Zstandard правильно установлена и настроена, поскольку директива зависит от внешних зависимостей.

Будьте осторожны с клиентами, которые поддерживают Zstd; включение декомпрессии для всех клиентов может привести к ухудшению производительности, если это не требуется.

Этот модуль экспериментальный, и неправильная конфигурация может привести к непредвиденным результатам, например, к необходимости временно отключить его.

← Ко всем директивам