nchan_channel_timeout
Устанавливает таймаут для каналов Nchan, позволяя неактивные каналы автоматически закрываться после указанного периода.
Описание
Директива nchan_channel_timeout в Nchan задаёт длительность, по истечении которой канал становится неактивным и может быть закрыт, если нет подключённых подписчиков или не отправляются сообщения. Эта директива помогает более эффективно управлять использованием ресурсов, предотвращая накопление неиспользуемых каналов и тем самым обеспечивая, что память и вычислительные ресурсы сервера используются преимущественно для активных каналов. Значение таймаута можно задавать в секундах, минутах или часах, и важно откалибровать его исходя из ожидаемого трафика и требований приложения.
При настройке nchan_channel_timeout значение указывается как аргумент, следующий за самой директивой. Контекстами для этой директивы являются http, server и location, что делает её универсальной для разных архитектур приложений — как при глобальных настройках, так и при конфигурациях, привязанных к конкретным локациям. После того как период таймаута проходит без активности на канале, канал автоматически удаляется, освобождая ресурсы в рабочем процессе Nginx, обрабатывающем этот канал.
Эта директива особенно полезна в сценариях, когда каналы могут оставаться открытыми неоправданно долго из-за редкой активности. Установив разумный таймаут, разработчики могут обеспечить эффективность системы, одновременно предоставляя достаточно времени для корректного использования и не закрывая преждевременно активные соединения, которые всё ещё могут использовать подписчики.
Пример конфига
location /nchan {
nchan_channel_timeout 2m;
nchan_pubsub;
}Убедитесь, что timeout установлен достаточно большим, чтобы действительные подписчики оставались подключёнными и не отключались без необходимости.
Очень короткий timeout может привести к увеличению накладных расходов на TCP-соединения из-за частых reconnects.