echo_flush

Директива 'echo_flush' заставляет NGINX немедленно отправлять клиенту буферизированный ответ.

Синтаксисecho_flush;
По умолчаниюnone
Контекстlocation, if in location
Аргументыnone

Описание

Директива 'echo_flush' в основном используется для управления тем, как ответы отправляются клиенту в режиме реального времени. Когда эта директива вызывается, она фактически приказывает NGINX очистить любой буферизированный вывод и немедленно передать данные, которые к тому моменту уже подготовлены. Эта возможность особенно полезна в сценариях long-polling или при работе с live data feeds, когда важно доставлять клиенту обновления как можно скорее, избегая задержек, связанных с буферизацией.

По расположению 'echo_flush' может применяться внутри блоков location и в условных конструкциях, что позволяет разработчикам стратегически размещать её там, где необходима мгновенная обратная связь. Эта директива не принимает аргументов, что упрощает её использование и способствует прямолинейной реализации в различных серверных контекстах.

В целом, хотя команда 'echo_flush' повышает интерактивность веб-приложений, способствуя своевременному обмену информацией с клиентами, её следует использовать осторожно, чтобы избежать потенциального влияния на производительность из‑за частых flushes в средах с высокой нагрузкой.

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

location /live_updates {
    echo "Initializing update...";
    echo_flush;
    echo "Update received!";
}

Неправильное использование на путях, критичных по производительности, может привести к снижению отзывчивости из‑за частых сбросов буфера.

Убедитесь, что сброс буфера не мешает другой логике обработки ответа.

Помните, что после вызова echo_flush только последующие команды буферизуются, поэтому echo_flush должен быть расположен правильно, чтобы работать как задумано.

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