proxy_buffering
Директива proxy_buffering включает или отключает буферизацию ответов от проксируемых серверов.
Описание
Директива proxy_buffering в NGINX управляет тем, будут ли ответы от проксируемых серверов буферизоваться до отправки клиентам. При установке значения 'on' NGINX буферизует весь ответ от проксируемого сервера, что может улучшить производительность: NGINX сможет отправить ответ клиенту одной оптимизированной сетевой операцией. Это особенно полезно для больших ответов, когда накладные расходы на соединение могут существенно влиять на производительность. Напротив, установка proxy_buffering в 'off' позволяет NGINX передавать ответ клиенту по мере его получения, что бывает полезно, если вы хотите напрямую передавать потоковые данные или у вас есть требования к низкой задержке, например в приложениях реального времени.
Директива может применяться в различных контекстах, таких как http, server и location, что даёт гибкость в выборе частей вашего приложения, где используется буферизация, в зависимости от конкретных требований к производительности. Если у вас несколько backends и для каждого требуется разная конфигурация буферизации, вы можете отдельно настроить значение proxy_buffering для каждого из них. Обратите внимание, что при включённой буферизации NGINX также использует параметры, определённые другими директивами, связанными с проксированием, такими как proxy_buffers и proxy_buffer_size, для управления тем, сколько данных буферизуется перед отправкой клиенту.
Пример конфига
location /api {
proxy_pass http://backend;
proxy_buffering off;
}Отключение буферизации может привести к увеличению использования памяти, если ответы большие и медленно отправляются.
Когда proxy_buffering отключен, клиенты могут получать частичные ответы до того, как весь ответ станет полностью доступен.