Перейти к содержанию

Обзор развертывания Jitsi Meet на сервере

Предпосылки и предварительные требования

Для успешного развертывания системы необходимо наличие сервера с операционной системой Debian или Ubuntu. Требуется наличие прав суперпользователя (root) или доступа через sudo.

Система требует подключения к интернету для загрузки пакетов и получения сертификатов. Необходимо наличие зарегистрированного доменного имени (FQDN), которое будет использоваться для доступа к видеоконференциям.

Открытые порты в брандмауэре: - Порт 80 (TCP) для HTTP-трафика и перенаправления на HTTPS. - Порт 443 (TCP) для защищенного HTTPS-трафика. - Порт 10000 (UDP) для передачи видеопотоков (Jitsi Videobridge).

Структура файлов и каталогов

Конфигурация веб-сервера и доменов хранится в следующих директориях: - Конфигурация виртуальных хостов Nginx: /etc/nginx/sites-available/ и /etc/nginx/sites-enabled/. - Пользовательские конфигурации для прокси-контейнера: /data/nginx/user_conf.d/. - Конфигурация Docker Compose для прокси-сервера: /root/nginx/compose.yml. - Сертификаты Let's Encrypt: /etc/letsencrypt/ (монтируется в контейнер).

Основные пакеты и сервисы устанавливаются в стандартные системные каталоги Debian/Ubuntu.

Процесс установки приложения

Установка производится через пакетный менеджер apt с использованием репозиториев разработчиков.

  1. Добавление ключей подписи и репозиториев:
  2. Репозиторий Jitsi: deb https://download.jitsi.org stable/.
  3. Репозиторий Prosody: deb [signed-by=/usr/share/keyrings/prosody-debian-packages.key] https://packages.prosody.im/debian jammy main.

  4. Установка зависимостей и основных пакетов:

  5. curl, gnupg, apt-transport-https, ca-certificates.
  6. lua5.2.
  7. Пакеты Jitsi: jitsi-meet, jicofo, jitsi-videobridge2, jitsi-meet-prosody, jitsi-meet-web, jitsi-meet-web-config, jitsi-meet-turnserver.
  8. Веб-сервер: nginx.

  9. Настройка параметров установки:

  10. Указание полного доменного имени (FQDN) для веб-конфигурации и видеомоста.
  11. Выбор типа сертификата: Let's Encrypt.

  12. Перенастройка конфигурации веб-сервера:

  13. Запуск команды dpkg-reconfigure -f noninteractive jitsi-meet-web-config для применения доменного имени, если файл виртуального хоста отсутствует.
  14. Активация созданного файла конфигурации в директории /etc/nginx/sites-enabled/.
  15. Удаление стандартного сайта по умолчанию (default).

Контейнеры Docker и их запуск

Для управления SSL-сертификатами и проксированием трафика используется контейнеризированное решение на базе docker compose.

Конфигурация контейнера описана в файле /root/nginx/compose.yml.

Параметры запуска контейнера nginx: - Образ: jonasal/nginx-certbot:latest. - Режим сети: host. - DNS-серверы: 1.1.1.1, 8.8.8.8. - Переменная окружения CERTBOT_EMAIL для указания адреса администратора. - Монтирование тома nginx_secrets в /etc/letsencrypt для хранения сертификатов. - Монтирование директории /data/nginx/user_conf.d в /etc/nginx/user_conf.d внутри контейнера для пользовательских конфигов.

Запуск контейнера осуществляется командой:

docker compose up -d
из директории /root/nginx.

Прокси серверы

В системе используется Nginx в двух ролях: как системный пакет для Jitsi и как контейнеризированный прокси для управления сертификатами.

Конфигурация прокси-сервера для Jitsi создается в файле /data/nginx/user_conf.d/<prefix><server_id>.<zone>.conf.

Настройки сервера: - Перенаправление HTTP (порт 80) на HTTPS. - Слушание HTTPS (порт 443) с поддержкой ssl и http2. - Проксирование всего трафика (/) на https://127.0.0.1:8443/ с отключением проверки SSL (proxy_ssl_verify off). - Передача заголовков: Host, X-Real-IP, X-Forwarded-For, X-Forwarded-Proto, Upgrade, Connection.

Специальные маршруты для WebSocket-соединений: - /xmpp-websocket -> https://127.0.0.1:8443/xmpp-websocket. - /colibri-ws/ -> https://127.0.0.1:8443/colibri-ws/. - /http-bind -> https://127.0.0.1:8443/http-bind.

Сертификаты Let's Encrypt выпускаются скриптом /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh с передачей адреса электронной почты администратора.

Права доступа и безопасность

Брандмауэр UFW настроен следующим образом: - Разрешен входящий трафик на порты 80/tcp, 443/tcp, 10000/udp. - Политика по умолчанию: allow. - Брандмауэр активирован.

Конфигурация Nginz в системном пакете модифицируется для: - Удаления прослушивания порта 8443 на 127.0.0.1. - Явного указания прослушивания портов 80 и 443 ssl http2. - Установки server_name на значение доменного имени.

Файлы конфигурации в директории /root/nginx и /data/nginx/user_conf.d имеют права доступа 0755 для директорий и 0644 для файлов, владелец root.

Запуск, остановка и обновление

Управление основными сервисами Jitsi осуществляется через systemd.

Перезапуск сервисов после установки или изменения конфигурации:

systemctl restart prosody
systemctl restart jicofo
systemctl restart jitsi-videobridge2
systemctl restart nginx

Включение автозапуска сервисов:

systemctl enable prosody
systemctl enable jicofo
systemctl enable jitsi-videobridge2
systemctl enable nginx

Проверка конфигурации Nginx перед перезагрузкой:

nginx -t

Перезагрузка конфигурации Nginx:

systemctl reload nginx

Для контейнеризированного прокси-сервера управление осуществляется через docker compose в директории /root/nginx: - Запуск: docker compose up -d. - Остановка: docker compose down. - Обновление: docker compose pull и docker compose up -d.

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×