ping_timeout
Директива `ping_timeout` задаёт период таймаута для обнаружения неактивных подключений клиентов в модуле NGINX RTMP.
Описание
Директива ping_timeout имеет ключевое значение при работе приложений для потоковой трансляции в реальном времени, использующих модуль NGINX RTMP. Эта директива задаёт период таймаута в миллисекундах, в течение которого сервер будет ждать получения запроса 'ping' от клиента. Если этот таймаут превышен и ping не был получен, сервер считает клиента неактивным и может отключить его. Это особенно важно для эффективного использования ресурсов сервера и предотвращения того, чтобы неактивные клиенты оставались подключёнными бесконечно, что могло бы привести к истощению ресурсов.
При настройке ping_timeout администратору необходимо определить, как долго сервер должен ожидать до принятия решения о разрыве соединения. Значение ping_timeout должно учитывать типичные сетевые условия и поведение пользователей, чтобы достичь баланса между поддержанием соединений для реальных пользователей и освобождением ресурсов от неактивных. Слишком короткий таймаут может преждевременно отключать клиентов, просто испытывающих сетевую задержку, тогда как слишком длинный таймаут может необоснованно резервировать ресурсы для неактивных клиентов.
Механизм ping работает в связке с реализацией RTMP на сервере, которая часто отправляет периодические ping-запросы клиентам для проверки их активности. Взаимодействие между ping_timeout и реализацией на стороне клиента определяет эффективность этой директивы. Если клиенты не соблюдают ожидаемое поведение по отправке ping, настройки сервера могут потребовать корректировки для оптимизации производительности и качества пользования.
Пример конфига
rtmp {
server {
listen 1935;
application live {
live on;
ping_timeout 15000;
}
}
}Установка слишком малого значения таймаута может привести к неожиданному отключению легитимных клиентов.
Убедитесь, что клиентские приложения разработаны так, чтобы регулярно отправлять пинги, чтобы избежать ситуаций преждевременного истечения времени ожидания.