echo_blocking_sleep

Директива `echo_blocking_sleep` вводит блокирующий период ожидания при обработке запроса в NGINX, приостанавливая ответ на заданную длительность.

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

Описание

Директива echo_blocking_sleep является частью NGINX Echo module, который добавляет в конфигурацию NGINX различные вспомогательные функции. Эта директива позволяет реализовать блокирующий интервал ожидания при обработке запроса. Когда она выполняется, NGINX приостанавливает обработку и не будет продолжать работу с запросом до тех пор, пока не истечёт указанная длительность сна. Эффект похож на создание задержки перед отправкой ответа клиенту.

Директива принимает один аргумент: длительность периода ожидания, указанную в секундах или миллисекундах (например, '5' для 5 секунд или '200ms' для 200 миллисекунд). В течение этого блокирующего периода запрос не может переходить к следующим этапам обработки в NGINX. Это особенно полезно в сценариях, где необходимо моделировать задержки или ограничивать ответы для целей тестирования или демонстрации.

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

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

location /sleep_example {
    echo "Processing request...";
    echo_blocking_sleep 3;
    echo "Response after 3 seconds";
}

Использование echo_blocking_sleep в контексте с высоким трафиком может привести к узким местам в производительности, потому что оно блокирует рабочие процессы.

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

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