Я пытался настроить nginx с модулем rtmp на вычислительном движке Google, создав Debian vm. Я успешно установил и настроил nginx для использования модуля rtmp. Я могу получить приветственное сообщение в браузере, когда использую http: // Однако, когда я пытаюсь протестировать свой поток с помощью OBS, я получаю следующее сообщение:
Failed to connect to server.
Connection timed out. Make sure you've configured a valid streaming service and no firewall is blocking the connection.
Я думаю, что время ожидания OBS истекло, потому что он не может достичь модуля rtmp. Мне интересно, нужно ли мне настраивать какие-либо настройки в вычислительном движке, чтобы он разрешал соединения rtmp. Я попытался изучить настройки брандмауэра, но не похоже, что что-либо, связанное с rtmp, заблокировано. Я также пытался удалить виртуальную машину и повторить все несколько раз, но каждый раз получаю одну и ту же ошибку. Кто-нибудь знает, как проверить, что на самом деле происходит, и почему OBS может не подключиться к nginx? Мои первоначальные мысли заключались в том, что, поскольку модуль rtmp работает на виртуальной машине и настроен на listen 1935;
так что он может просто слушать внутренний IP. Однако если я изменю nginx.conf
отражать что-то вроде listen <external-ip>:1935
это дает мне nginx: [emerg] bind() to <external-ip>:1935 failed (99: Cannot assign requested address)
Любые мысли по этому поводу будут оценены
Итак, после еще нескольких поисков в Интернете я обнаружил, что виртуальные машины по умолчанию не разрешают доступ ко всем портам. То есть брандмауэр блокирует порты, если не указано иное. Итак, я просто открыл TCP-порт в 1935 году в настройках брандмауэра, и, похоже, это помогло.