Я использую сервер потоковой передачи с открытым исходным кодом 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, требующего от вас исправления и установки собственного.