2015-02-11 2 views
1

Я пытаюсь передать поток flv из моего картриджа с открывающимся доступом, используя модуль nginx + rtmp.Openshift + NGINX RTMP

На моей локальной машине, с присоединенной конфигурации, все работает нормально (я использую ffplay для тестирования, например ffplay RTMP: // локальный: 8080/тест/streamkey)

Когда я пытаюсь с такой же конфигурацией на OpenShift, я получаю следующее сообщение об ошибке:

HandShake: Type mismatch: client sent 3, server answered 60 f=0/0 
RTMP_Connect1, handshake failed. 

Однако, если включить переадресацию портов и протестировать сервер потока с помощью ffplay RTMP: //127.0.0.1: 8080/тест/streamkey, все работает отлично. вот мои портовые пересылки:

rhc port-forward myappname 
Checking available ports ... done 
Forwarding ports ... 

To connect to a service running on OpenShift, use the Local address 

Service Local    OpenShift 
------- -------------- ---- ----------------- 
nginx 127.0.0.1:8080 => 127.10.103.1:8080 

Мой патрон - картридж «diy-0.1». nginx 1.7.6 (также проверен 1.4.4) + rtmp-модуль.

Я подозреваю, что есть некоторые проблемы с некоторым прокси-сервером (apache?), Который использует openshift для обработки передач, возможно, он не разрешает заголовки rtmp (?)?

NB: Конфигурация nginx http-only работает нормально.

Может ли кто-нибудь помочь? Я застрял, я думаю, что это первый случай, когда я спрашиваю что-то о stackoverflow :-)

Конфигурация nginx (NB: путь «play» и IP: PORT принимаются с использованием переменных среды смены).:

rtmp { 
    server { 
     listen 127.10.103.1:8080; 

     chunk_size 8192; 

     application test { 
        play /var/lib/openshift/54da37644382ece45c000139/app-root/runtime/repo/public; 
     } 
    } 
} 

ответ

1

Существует Апачи прокси перед приложением на OpenShift Online, и вполне возможно, что содержание пытается быть потоковым, как HTTP-трафика вместо RTMP трафика, поэтому вы получаете несоответствие содержимого , но если вы делаете это через порт-вперед, вы получаете прямой доступ к вашему приложению и обходите прокси-сервер. Вот почему он отлично работает с портами. В настоящее время нет способа обойти обратный прокси apache через общедоступный ip, пожалуйста, ознакомьтесь с этой статьей портала портала, чтобы получить дополнительную информацию о том, как запросы направляются в ваше приложение: https://developers.openshift.com/en/managing-port-binding-routing.html

+0

Спасибо, это то, что я искал! У меня все еще была надежда, но, к счастью, у меня есть план B! –

Смежные вопросы