timeout

Директива `timeout` в модуле NGINX RTMP определяет максимальную продолжительность ожидания перед закрытием потоковой сессии из-за бездействия.

Синтаксисtimeout number;
По умолчаниюnone
Контекст
Аргументы1

Описание

Директива timeout используется для установки ограничения на длительность потоковой сессии, что важно для сохранения ресурсов сервера и предотвращения ситуации, когда неактивные сессии занимают ценные соединения. Когда сессия достигает заданного порога таймаута, сервер завершает её, если в течение этого периода не было никакого взаимодействия (например, поток не публиковался или не воспроизводился). Такая директива особенно полезна в сценариях управления множеством потоков, когда администраторы хотят гарантировать, что неактивные потоки не будут оставаться бесконечно, повышая тем самым эффективность и производительность сервера.

Параметр директивы timeout задаёт продолжительность во времени в миллисекундах и может принимать различные значения в зависимости от требований приложения. Она действует в контексте прямых (live) и трансляций по запросу (on-demand), где контролируется время простоя. Если длительность, заданная в timeout, превышается, сервер автоматически закроет соединение потока, что обеспечивает эффективное использование системных ресурсов. При установке этого значения следует быть осторожным: слишком короткая длительность может привести к преждевременному завершению легитимных сессий, тогда как слишком длинная позволит неактивным сессиям сохраняться и потенциально приведёт к исчерпанию ресурсов.

Важно отметить, что эта директива не влияет на сессии, которые активно публикуют или воспроизводят контент; она специально отслеживает бездействие во время трансляции. Поэтому администраторам следует сбалансировать конфигурацию timeout, чтобы оптимизировать как управление ресурсами, так и пользовательский опыт. Кроме того, поскольку эта директива является частью модуля RTMP, она специально адаптирована для обработки потоковой передачи в реальном времени и отличается от других настроек таймаута, доступных в общей конфигурации NGINX.

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

rtmp {
    server {
        listen 1935;

        application live {
            live on;
            timeout 30000; # Set timeout to 30 seconds
        }
    }
}

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

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

Директива timeout применяется только к RTMP-сессиям и не влияет на HTTP-подключения или другие возможности NGINX.

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