Назад | Перейти на главную страницу

несколько потоковых серверов за хостом Bastion

Я использую сервер потоковой передачи с открытым исходным кодом Red5 на нескольких серверах. Которые бегут за бастионным войском.

мир знает эти сайты как

http://site1.mydomain.com
http://site2.mydomain.com
http://site3.mydomain.com
http://site4.mydomain.com

Для доступа к серверу переднего плана используется обратный прокси-сервер Apache.

У меня также есть потоковое видео на каждом из этих веб-сайтов с использованием rtmp.

Чтобы получить доступ к серверу потоковой передачи, я встраиваю javascript в HTML-страницы следующим образом:

<embed .....
var="rtmp://site1.my_domain.com"
>

проблема в том, что на сайте много

site1.mydomain.com
site2.mydomain.com
site3.mydomain.com
site4.mydomain.com

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

Если я запускаю rtmp на каждом из поддоменов на другом порту

как я могу убедиться, что такой запрос, как

rtmp://site1.mydomain.com
rtmp://site2.mydomain.com

идет на их соответствующие серверы. с внешнего сервера. Что мне нужно делать в этом случае?

IPTABLES пришло на ум мгновенно, но из клиентского браузера в Интернете, когда кто-то запрашивает

rtmp: //site1.mydomain.com

как я могу убедиться, что этот запрос rtmp сопоставлен с портом, отличным от 1935, поскольку есть три других потоковых сервера, которые также должны отвечать на свои соответствующие запросы?

Если ваши пользователи связываются с серверами rtmp только через код (в отличие от ввода URL-адреса вручную, вы можете просто указать правильный номер порта в самом URL-адресе.

Например:

rtmp://site1.mydomain.com:1935
rtmp://site2.mydomain.com:1936
rtmp://site3.mydomain.com:1937
rtmp://site4.mydomain.com:1938

Попытка сделать такое перенаправление через iptables нетривиально. Заголовки TCP / IP, с которыми работает iptables, не содержат следов поиска DNS, который был выполнен для получения IP-адреса, содержащегося в заголовках.

В зависимости от формата протокола RTMP (с которым я не знаком) вы может уметь что-то вроде l7-фильтр проект для создания правил фильтрации, которые проверяют полезную нагрузку. Однако обратите внимание, что это не часть стандартного ядра Linux, требующего от вас исправления и установки собственного.