gzip_no_buffer

Директива 'gzip_no_buffer' отключает буферизацию вывода сжатия gzip. — NGINX HTTP Core

gzip_no_buffer
httpserverlocation
Синтаксисgzip_no_buffer on | off;
По умолчаниюoff
Контекстhttp, server, location
МодульNGINX HTTP Core
Аргументыflag

Описание

Директива `gzip_no_buffer` в NGINX используется для управления буферизацией вывода для ответов, сжимаемых gzip. При установке в 'on' эта директива позволяет NGINX отправлять сжатый вывод напрямую клиенту без предварительного буферизации всего ответа в памяти. Такое поведение особенно полезно для больших ответов или при необходимости потоковой передачи данных в реальном времени, поскольку оно снижает использование памяти и потенциально повышает пропускную способность за счёт отправки данных клиенту по мере их генерации. Напротив, установка директивы в 'off' (что является значением по умолчанию) включает буферизацию и позволяет удерживать весь ответ в памяти до его сжатия и отправки, что может быть выгодно для оптимизации доставки ответов, особенно когда сервер извлекает выгоду из дедупликации данных и эффективности сжатия. Директива принимает один флаговый аргумент: 'on' или 'off'. Когда она активирована, ответы отправляются напрямую без буферизации, тогда как при выключенной опции происходит стандартное буферизированное поведение. Важно отметить, что отключение буферизации может повлиять на производительность в отдельных сценариях, особенно при обработке большого числа одновременных запросов или больших ответов, поскольку накладные расходы на динамическое сжатие данных могут увеличить нагрузку на систему.

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

http {
    gzip on;
    gzip_no_buffer on;
}

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

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