proxy_buffering

Директива proxy_buffering включает или отключает буферизацию ответов от проксируемых серверов.

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

Описание

Директива 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 отключен, клиенты могут получать частичные ответы до того, как весь ответ станет полностью доступен.

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