Мне нужна помощь, чтобы понять это, возможно, я совершенно не понял это и пошел неправильным путем. Возможно ли перенаправить входящие потоки 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, я решил, что ' Я оставлю это здесь из любопытства, чтобы посмотреть, можно ли это сделать. Я не жду ответа.
Это должно было работать нормально. Я сделал это.
Согласно вашим журналам, состояние вашего сеанса при отключении составляет SC
.
S
: сеанс TCP был неожиданно прерван из-за сервер, или сервер явно отказался от него.
C
: прокси ожидал установления ПОДКЛЮЧЕНИЯ на сервере. В лучшем случае сервер мог заметить попытку соединения.
Все указывает на то, что ваш внутренний сервер вообще не принимает TCP-соединения через порт 2000. При тестировании соединения с HAProxy с помощью telnet или nc должно было быть возвращено Соединение отклонено
.
Я вернулся и изучил это. Возникли проблемы, когда HAProxy не мог подключиться к удаленному серверу. Этот опубликованный ответ решил мою проблему: Отказано в разрешении на проверку работоспособности Haproxy . Оказывается, я не настраивал свой SE Linux для разрешения исходящих подключений HA Proxy (что странно, потому что я могу поклясться, что у меня был SE Linux и все брандмауэры ненадолго отключены, когда я тестировал его в последний раз, но он все еще не удался).