push_channel_timeout

Директива `push_channel_timeout` задаёт максимальную продолжительность, в течение которой канал push-уведомлений может оставаться открытым без активности, прежде чем произойдёт тайм-аут.

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

Описание

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

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

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

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

location /push {
    push_channel_timeout 60s;
    # other configurations
}

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

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

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