push_subscriber_timeout

Директива `push_subscriber_timeout` задаёт максимально допустимое время простоя для соединения подписчика в NGINX Nchan.

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

Описание

Директива push_subscriber_timeout в модуле NGINX Nchan используется для указания максимальной длительности, в течение которой соединение подписчика может оставаться бездействующим до закрытия. Это особенно важно в архитектурах pub/sub, где устанавливаются активные соединения подписчиков для получения сообщений в режиме реального времени. Если соединение подписчика не отправляет никаких запросов в течение указанного периода, Nginx автоматически завершит это соединение, чтобы освободить ресурсы и более эффективно управлять открытыми соединениями.

Директива принимает один аргумент, задающий период таймаута. Период можно указывать в различных форматах времени, например секундах (s), миллисекундах (ms) или минутах (m). Правильная настройка таймаута помогает поддерживать оптимальное количество одновременных соединений и может снизить риск исчерпания ресурсов сервера. Пользователям следует учитывать конкретные потребности своего приложения — например, как часто подписки ожидается оставаться активными — чтобы правильно настроить эту директиву. Если эта директива не задана, поведение по умолчанию может привести к нежелательным отключениям бездействующих подписчиков в зависимости от конфигурации сервера.

Также важно отметить, что эта директива может располагаться в нескольких контекстах, включая http, server, location, а также внутри if-условия в блоке location, что даёт гибкость в том, как и где её можно применять для управления поведением подписчиков в разных частях конфигурации NGINX.

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

http {
    nchan_pubsub;
    push_subscriber_timeout 30s;
}

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

Если значение push_subscriber_timeout слишком велико, это может привести к чрезмерному потреблению ресурсов устаревшими соединениями.

При изменении этой настройки обязательно учитывайте влияние на поведение клиентов.

Эта директива применима только в контексте pub/sub; вне этих контекстов она не действует.

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