Быстрое решение проблемы с видео в Firefox для BigBlueButton
Дата: 2026-01-08
Проблема: Видео не отображается в Firefox на хостинг-сервере
Быстрое решение
Автоматическое исправление (рекомендуется)
Используйте скрипт для автоматического применения исправлений:
cd /home/cdto/DENKART
./scripts/fix-bbb-firefox-video.sh [BBB-CONT22-1] [school.cdto.life]
Параметры:
- Первый параметр: имя контейнера (по умолчанию: BBB-CONT22-1)
- Второй параметр: домен (по умолчанию: school.cdto.life)
Ручное исправление
Если скрипт не подходит, выполните следующие шаги:
1. Обновить конфигурацию WebRTC SFU
lxc exec BBB-CONT22-1 -- bash -c "cat > /etc/bigbluebutton/nginx/webrtc-sfu.nginx << 'EOF'
location /bbb-webrtc-sfu {
proxy_pass http://127.0.0.1:3008;
proxy_http_version 1.1;
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto \$scheme;
# WebSocket заголовки (критично для Firefox)
proxy_set_header Upgrade \$http_upgrade;
proxy_set_header Connection \"upgrade\";
proxy_buffering off;
proxy_cache off;
proxy_connect_timeout 7d;
proxy_send_timeout 7d;
proxy_read_timeout 7d;
proxy_set_header X-Forwarded-Host \$host;
proxy_set_header X-Forwarded-Port \$server_port;
# CORS заголовки для Firefox
add_header Access-Control-Allow-Origin \"*\" always;
add_header Access-Control-Allow-Methods \"GET, POST, OPTIONS\" always;
add_header Access-Control-Allow-Headers \"Content-Type, Authorization, X-Requested-With\" always;
}
EOF"
2. Добавить CORS и CSP заголовки в основную конфигурацию
Добавьте в блок server конфигурации /etc/bigbluebutton/nginx/bigbluebutton:
# CORS заголовки для Firefox WebRTC
add_header Access-Control-Allow-Origin "*" always;
add_header Access-Control-Allow-Methods "GET, POST, OPTIONS" always;
add_header Access-Control-Allow-Headers "Content-Type, Authorization, X-Requested-With" always;
# Content Security Policy для WebRTC
add_header Content-Security-Policy "default-src 'self' 'unsafe-inline' 'unsafe-eval' data: blob: https: wss: ws:; media-src 'self' blob: https:; connect-src 'self' https: wss: ws:;" always;
3. Убедиться, что location /bbb-webrtc-sfu существует
Проверьте наличие блока location /bbb-webrtc-sfu в основной конфигурации. Если его нет, добавьте его (см. полную документацию).
4. Перезапустить сервисы
lxc exec BBB-CONT22-1 -- nginx -t
lxc exec BBB-CONT22-1 -- systemctl reload nginx
lxc exec BBB-CONT22-1 -- systemctl restart bbb-webrtc-sfu
Проверка
- Откройте Firefox на хостинг-сервере
- Откройте консоль разработчика (F12)
- Перейдите на вкладку "Network"
- Откройте BigBlueButton
- Проверьте:
- Запросы к
/bbb-webrtc-sfuвозвращают статус 101 - Нет ошибок CORS
- WebSocket соединения устанавливаются
Диагностика
Проверка логов
# Логи bbb-webrtc-sfu
lxc exec BBB-CONT22-1 -- journalctl -u bbb-webrtc-sfu -f
# Логи Nginx
lxc exec BBB-CONT22-1 -- tail -f /var/log/nginx/error.log
Проверка WebRTC в Firefox
- В адресной строке Firefox введите:
about:webrtc - Проверьте активные WebRTC соединения
- Убедитесь, что используются правильные ICE candidates
Проверка портов
# Проверить проброс портов
lxc config show BBB-CONT22-1 | grep -A 10 devices
# Проверить открытые порты
lxc exec BBB-CONT22-1 -- netstat -tuln | grep -E "16384|3008|8090"
Дополнительные проверки
- [ ] Разрешения камеры/микрофона в Firefox
- [ ] Отключены блокирующие расширения
- [ ] SSL сертификат валиден
- [ ] Порты WebRTC (16384-32768) открыты
- [ ] Версия Firefox актуальна
Полная документация
Для подробной информации см.:
- /home/cdto/DENKART/docs/operations/bbb-firefox-video-issue.md
Статус: Готово к применению