push_subscriber_timeout
Директива `push_subscriber_timeout` задаёт максимально допустимое время простоя для соединения подписчика в NGINX Nchan.
Описание
Директива 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; вне этих контекстов она не действует.