unzstd_buffers
Настраивает количество и размер буферов, используемых для декомпрессии ответов, закодированных zstd, в NGINX.
Описание
Директива unzstd_buffers определяет, сколько буферов и какого размера будет использовать сервер NGINX при декомпрессии ответов, закодированных с помощью Zstandard (zstd), для клиентов, которые не поддерживают это. Эта директива особенно важна для оптимизации использования памяти и производительности при обработке сжатых данных ответа, поскольку она определяет, какой объём данных может обрабатываться за один раз в процессе декомпрессии.
Когда сервер NGINX получает ответ с заголовком 'Content-Encoding: zstd' и настроен на декомпрессию таких ответов, директива unzstd_buffers определяет распределение памяти для буферов. Эти буферы необходимы для временного хранения декомпрессированных данных в процессе их обработки перед отправкой клиенту. Пользователи могут настроить эту директиву в контекстах http, server и location, что даёт гибкость в зависимости от потребностей сервера.
Параметры этой директивы включают два значения: первое задаёт количество буферов, а второе — размер каждого отдельного буфера. Например, установка unzstd_buffers 32 4k; выделяет 32 буфера по 4 килобайта каждый. Директиву следует задавать внимательно с учётом производительности сервера и характера трафика, поскольку неверные значения могут привести к неэффективному использованию памяти или к сбоям при обработке больших ответов.
Пример конфига
server {
listen 127.0.0.1:8080;
server_name localhost;
location / {
unzstd on;
unzstd_buffers 32 4k;
proxy_pass http://foo.com;
}
}Установка слишком малого числа буферов может привести к ошибкам распаковки больших ответов.
Использование размеров буферов, превышающих доступную память, может привести к снижению производительности.
Если директива unzstd не включена, эта директива не будет иметь эффекта.