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