nchan_channel_timeout

Устанавливает таймаут для каналов Nchan, позволяя неактивные каналы автоматически закрываться после указанного периода.

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

Описание

Директива nchan_channel_timeout в Nchan задаёт длительность, по истечении которой канал становится неактивным и может быть закрыт, если нет подключённых подписчиков или не отправляются сообщения. Эта директива помогает более эффективно управлять использованием ресурсов, предотвращая накопление неиспользуемых каналов и тем самым обеспечивая, что память и вычислительные ресурсы сервера используются преимущественно для активных каналов. Значение таймаута можно задавать в секундах, минутах или часах, и важно откалибровать его исходя из ожидаемого трафика и требований приложения.

При настройке nchan_channel_timeout значение указывается как аргумент, следующий за самой директивой. Контекстами для этой директивы являются http, server и location, что делает её универсальной для разных архитектур приложений — как при глобальных настройках, так и при конфигурациях, привязанных к конкретным локациям. После того как период таймаута проходит без активности на канале, канал автоматически удаляется, освобождая ресурсы в рабочем процессе Nginx, обрабатывающем этот канал.

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

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

location /nchan {
    nchan_channel_timeout 2m;
    nchan_pubsub;
}

Убедитесь, что timeout установлен достаточно большим, чтобы действительные подписчики оставались подключёнными и не отключались без необходимости.

Очень короткий timeout может привести к увеличению накладных расходов на TCP-соединения из-за частых reconnects.

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