timeout
Директива `timeout` в модуле NGINX RTMP определяет максимальную продолжительность ожидания перед закрытием потоковой сессии из-за бездействия.
Описание
Директива 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.