Как настроить балансировку NGINX_RTMP?

Появился вопрос как сделать балансировку. Прочитав вики модуля понял, что вопрос балансировки решается через pull и push директивы.

Ситуация (пример):
Имеется два nginx-rtmp сервера А(мастер) и Б рассчитанные на 10 подключений каждый и поток СТРИМ.
Допустим что сервер А уже держит 9 подключений (не учитывая подключение самого СТРИМа).

Вопрос:
Возможно ли сделать так, чтобы при десятом подключении к А, А создавал push к Б (или как то иначе) и перекидывал десятое и последующие подключения на Б?
  • Вопрос задан
  • 2401 просмотр
Пригласить эксперта
Ответы на вопрос 1
ptchol
@ptchol
Linux system administrator
Балансировки внутри самого модуля как таковой нет.
В вашем случае мне кажется стоит поставить какой нибудь haproxy перед nginx и им разрулить ваши пожелания.
Возможно прокатит следующее решение: отлавливаете событие on_play и делаете вызов некоего скрипта, которому в качестве аргумента передаете к примеру ID трансляции, этот скрипт проверяет, не слишком ли много уже подключенных клиентов, и если они превосходят какое то значение, то вызывается redirect при помощи control module.
Но имхо как то слишком костыльно :)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы