Проталкивание потока TCP RTMP в реальном времени через HAProxy

Мне нужна помощь, чтобы понять это, возможно, я совершенно не понял это и пошел неправильным путем. Возможно ли перенаправить входящие потоки RTMP через HAProxy на принимающий сервер? Как в - вместо доступа к доступному потоку RTMP на сервере за HAProxy, но отправьте поток RTMP через него на указанный сервер.

Я настроил сервер, чтобы он сидел на общедоступном IP-адресе и принимал потоки в реальном времени RTMP, которые отправляются ему и другому серверу, который находится в сети с ограниченным доступом, изолированной от прямого доступа из общедоступной сети (оба сервера видят друг друга через VPN). Все, что связано с потоковой передачей RTMP, работает нормально - я могу отправить поток RTMP обоим (конечно, при подключении к одной и той же сети), но я ' m невозможно настроить HAProxy для пересылки моих потоков RTMP с общедоступного сервера на сервер, изолированный от общедоступной сети. Я попытался временно отключить брандмауэры, чтобы убедиться, что это не проблема.

Серверы, используемые для получения потоков RTMP, - это NGINX, конфигурация HAProxy, которую я пробовал использовать, прежде чем отказаться от идеи, выглядит следующим образом:

global
    log         127.0.0.1 local2
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     1024
    daemon
    stats socket /var/lib/haproxy/stats

defaults
    log                     global
    option                  tcplog
    option                  dontlognull
    retries                 6
    timeout queue           1m
    timeout connect         15s
    timeout client          1m
    timeout server          30s
    timeout check           10s
    maxconn                 256

listen rtmp-1935
    bind :1935
    mode tcp
    balance roundrobin
    server stream01 10.100.10.80:2000
    server stream02 10.100.10.80:2000

Некоторое краткое объяснение конфигурации - Идея заключалась в том, чтобы поток RTMP приходил на общедоступный сервер через TCP-порт 1935, а затем перенаправлялся через HAProxy на другой сервер, который прослушивает потоки RTMP на TCP-порту 2000. Результатом приведенной выше конфигурации было то, что HAProxy забирает поток, но ничего не пересылает.

Вот журнал:

Apr 30 19:26:30 localhost haproxy[15972]: Proxy admin started.
Apr 30 19:27:58 localhost haproxy[15973]: 10.100.10.60:19398 [30/Apr/2018:19:27:58.164] admin admin/<STATS> 0/0/5 14887 LR 1/1/0/0/0 0/0
Apr 30 19:27:58 localhost haproxy[15973]: 10.100.10.60:19398 [30/Apr/2018:19:27:58.170] admin admin/<STATS> 0/0/361 14949 LR 1/1/0/0/0 0/0
Apr 30 19:27:58 localhost haproxy[15973]: 10.100.10.60:19398 [30/Apr/2018:19:27:58.531] admin admin/<NOSRV> -1/-1/288 212 SC 0/0/0/0/0 0/0
Apr 30 19:33:52 localhost haproxy[15973]: 10.100.10.60:19423 [30/Apr/2018:19:33:52.795] admin admin/<STATS> 0/0/6 15001 LR 1/1/0/0/0 0/0
Apr 30 19:33:53 localhost haproxy[15973]: 10.100.10.60:19423 [30/Apr/2018:19:33:52.801] admin admin/<NOSRV> -1/-1/333 212 SC 0/0/0/0/0 0/0
Apr 30 19:34:09 localhost haproxy[16211]: Proxy rtmp-1935 started.
Apr 30 19:34:09 localhost haproxy[16211]: Proxy admin started.
Apr 30 19:34:11 localhost haproxy[16212]: 10.100.10.60:19425 [30/Apr/2018:19:34:11.965] admin admin/<STATS> 0/0/7 14817 LR 1/1/0/0/0 0/0
Apr 30 19:34:12 localhost haproxy[16212]: 10.100.10.60:19425 [30/Apr/2018:19:34:11.973] admin admin/<NOSRV> -1/-1/355 212 SC 0/0/0/0/0 0/0

Я уже отказался от этой идеи и вернулся к простому продвижению потоков RTMP, я решил, что ' Я оставлю это здесь из любопытства, чтобы посмотреть, можно ли это сделать. Я не жду ответа.

0
задан 30 April 2018 в 20:47
2 ответа

Это должно было работать нормально. Я сделал это.

Согласно вашим журналам, состояние вашего сеанса при отключении составляет SC .

S : сеанс TCP был неожиданно прерван из-за сервер, или сервер явно отказался от него.

C : прокси ожидал установления ПОДКЛЮЧЕНИЯ на сервере. В лучшем случае сервер мог заметить попытку соединения.

Все указывает на то, что ваш внутренний сервер вообще не принимает TCP-соединения через порт 2000. При тестировании соединения с HAProxy с помощью telnet или nc должно было быть возвращено Соединение отклонено .

0
ответ дан 24 November 2019 в 02:44

Я вернулся и изучил это. Возникли проблемы, когда HAProxy не мог подключиться к удаленному серверу. Этот опубликованный ответ решил мою проблему: Отказано в разрешении на проверку работоспособности Haproxy . Оказывается, я не настраивал свой SE Linux для разрешения исходящих подключений HA Proxy (что странно, потому что я могу поклясться, что у меня был SE Linux и все брандмауэры ненадолго отключены, когда я тестировал его в последний раз, но он все еще не удался).

0
ответ дан 24 November 2019 в 02:44

Теги

Похожие вопросы