Bbb: различия между версиями
Vovan (обсуждение | вклад) (→Какие забрасывать порты) |
Vovan (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
+ | =Проблематика= | ||
+ | |||
+ | ==Работа BBB за NAT== | ||
+ | |||
+ | Когда веб-клиент пытается установить соединение с аудио посредством WebRTC, то в протоколе внутри WebSocket сервер отдаёт внутренний IP сервера вместо внешнего. На этом этапе аудио соединение рушится и это проблема. | ||
+ | |||
+ | ==Проксирование через Nginx== | ||
+ | |||
+ | Если порт 443 и 80 заняты другим сервером (очень часто так бывает), то для работы BBB на определённом домене необходимо настраивать реверс-прокси на внешнем веб сервере (как правило это Nginx). В случае с BBB здесь достаточно хитрая настройка reverse-proxy. | ||
+ | |||
+ | Также необходимо учитывать, что инсталлер BBB не может установить решение без использования certbot и настройки валидного сертификата (с некоторых пор без валидного сертификата в браузерах не работает WebRTC. Вот совсем не работает... Совсем-совсем...). | ||
+ | |||
+ | Поэтому алгоритм установки BBB для работы за reverse-proxy тоже специфический. Можно даже это назвать некоторым лайвхаком... | ||
+ | |||
+ | =Решение= | ||
+ | |||
+ | ==Установка BBB, если требуется внешний reverse-proxy снаружи== | ||
+ | |||
+ | 1. С наружнего роутера забрасываем 80 порт на внутренний ip BBB сервера (вероятно, он используется уже на действующем решении, где работает certbot и обновляет посредством этого 80 порта другие сертификаты LE, однако придётся его временно перерулить на внуренний ip BBB сервера, ведь certbot-у на этом сервере тоже нужно убедиться, что это тот сервер, который имеет право получить валидный сертификат); | ||
+ | |||
+ | 2. UDP порты 16384-32768 снаружи заруливаем на внутренний ip адрес BBB и оставляем так навсегда; | ||
+ | |||
+ | 3. Запускаем скрипт установки | ||
+ | |||
+ | ./bbb-install.sh -v jammy-300 -s bbb-videoserver.ru -e vasya@mail.ru | ||
+ | |||
+ | , где | ||
+ | |||
+ | |||
+ | bbb-videoserver.ru | ||
+ | |||
+ | это домен вашего будущего сервера BBB, а | ||
+ | |||
+ | vasya@mail.ru | ||
+ | |||
+ | это емэйл, на который будет если что писать certbot (в нашем случае не будет, т.к. мы отключим его. Потому что у нас на реверс-прокси есть свой сертбот, который будет обновлять фронтальный сертификат); | ||
+ | |||
+ | 4. Ждём завершения установки; | ||
+ | |||
+ | 5. Возвращаем 80 порт на место. | ||
+ | |||
+ | |||
=Какие забрасывать порты= | =Какие забрасывать порты= | ||
Версия 18:42, 31 августа 2025
Содержание
Проблематика
Работа BBB за NAT
Когда веб-клиент пытается установить соединение с аудио посредством WebRTC, то в протоколе внутри WebSocket сервер отдаёт внутренний IP сервера вместо внешнего. На этом этапе аудио соединение рушится и это проблема.
Проксирование через Nginx
Если порт 443 и 80 заняты другим сервером (очень часто так бывает), то для работы BBB на определённом домене необходимо настраивать реверс-прокси на внешнем веб сервере (как правило это Nginx). В случае с BBB здесь достаточно хитрая настройка reverse-proxy.
Также необходимо учитывать, что инсталлер BBB не может установить решение без использования certbot и настройки валидного сертификата (с некоторых пор без валидного сертификата в браузерах не работает WebRTC. Вот совсем не работает... Совсем-совсем...).
Поэтому алгоритм установки BBB для работы за reverse-proxy тоже специфический. Можно даже это назвать некоторым лайвхаком...
Решение
Установка BBB, если требуется внешний reverse-proxy снаружи
1. С наружнего роутера забрасываем 80 порт на внутренний ip BBB сервера (вероятно, он используется уже на действующем решении, где работает certbot и обновляет посредством этого 80 порта другие сертификаты LE, однако придётся его временно перерулить на внуренний ip BBB сервера, ведь certbot-у на этом сервере тоже нужно убедиться, что это тот сервер, который имеет право получить валидный сертификат);
2. UDP порты 16384-32768 снаружи заруливаем на внутренний ip адрес BBB и оставляем так навсегда;
3. Запускаем скрипт установки
./bbb-install.sh -v jammy-300 -s bbb-videoserver.ru -e vasya@mail.ru
, где
bbb-videoserver.ru
это домен вашего будущего сервера BBB, а
vasya@mail.ru
это емэйл, на который будет если что писать certbot (в нашем случае не будет, т.к. мы отключим его. Потому что у нас на реверс-прокси есть свой сертбот, который будет обновлять фронтальный сертификат);
4. Ждём завершения установки;
5. Возвращаем 80 порт на место.
Какие забрасывать порты
UDP ports 16384-32768 (WebRtc), 24577-32768(Kurento)
TCP/UDP ports 5066 (этот под вопросом. Возможно, не нужно), 7443, 443 (через nginx proxy with letsencrypt)
Особенности
Видеоконфа по звуку никогда не будет работать через http. Это ограничения браузера, наряду со всякими CORS и т.п (веяния времени, безопасность и все такое...). Только https, причём валидный (LetsEncrypt, например).
Проблемы запуска bbb
По этой инструкции
https://docs.bigbluebutton.org/2.2/install.html
https://docs.bigbluebutton.org/2.2/configure-firewall.html
https://docs.bigbluebutton.org/2.2/customize.html
Проблема №1 Нет аудио
https://github.com/bigbluebutton/bigbluebutton/issues/8514
I had error 1006 after some updates.
I solved my problem by editing "/etc/bigbluebutton/nginx/sip.nginx" file:
I changed
proxy_pass http://x.x.x.x:5066;
to
proxy_pass https://x.x.x.x:7443;
I hope it works for you.
Проблема №2 Ошибка камеры
change ws:// to wss://
/usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml