Настройка прокси-модуля для стабильного вещания

Прокси-модуль позволяет поддерживать стабильность вещания, когда трансляцию смотрит большое количество пользователей из одной корпоративной сети.

Например, когда всем сотрудникам компании нужно посмотреть обучающий вебинар со своих рабочих мест. Если зрителей много, а ширины канала недостаточно, могут быть сложности с подключением. Прокси-модуль меняет схему передачи видеопотока, благодаря чему к трансляции может подключиться любое количество зрителей, независимо от ширины канала.

Если проводите трансляции для большого количества зрителей (более 100 человек) в одной корпоративной сети, настройте прокси-модуль для стабильного вещания.

Частые вопросы

Как работает прокси-модуль 

Прокси-модуль настраивается во внутреннем контуре корпоративной сети. Он обращается к серверам Толка один раз за уникальным чанком видеопотока, тем самым экономит ресурсы внешнего канала.

Зрители трансляции при подключении распределяются по серверам следующим образом:

  1. Первичный запрос от пользователя отправляется на все сервера, указанные в конфигурации (включая и ваши прокси-сервера, и облачные сервера Толка).
  2. На основе полученных ответов выбирается подходящий сервер:

    ​При подключении внутренних зрителей из корпоративной сети:
    • Если настроен один прокси-модуль, будет выбран этот прокси-модуль.
    • Если настроено несколько прокси-модулей и на вашей стороне не используется балансировщик для распределения трафика, будет выбран самый быстрый прокси-модуль по алгоритмам Толка.
    • Если настроено несколько прокси-модулей и на вашей стороне используется балансировщик, трафик будет распределяться по логике вашей системы.

    Если прокси-модуль окажется недоступен, внутренние зрители будут использовать облачные сервера Толка, если для них открыт доступ во внешнюю сеть.

    ​При подключении внешних зрителей прокси-модуль будет недоступен. Будут использоваться облачные сервера Толка.

Со своей стороны вы можете наблюдать уменьшенное потребление ресурсов внешнего канала и отсутствие фризов при большом количестве зрителей.

Логи прокси-модуля доступны в nginx. Из внешней сети подключаемый модуль не пингуется.

Схема работы прокси-модуля
Трафик распределяется Толком. Не используется балансировщик на стороне организации
Используется балансировщик на стороне организации

Можно ли настроить несколько прокси-модулей? В каких случаях это может потребоваться 

Несколько прокси-модулей настроить можно. Это может потребоваться для организаций с разветвленной структурой, распределенной по разным местам страны. Использование нескольких прокси-модулей поможет обеспечить стабильный доступ к трансляции.

Как маршрутизируется трафик? Как происходит разделение трафика между внутренними и внешними пользователями 

Маршрутизация трафика выполняется на стороне Толка. По умолчанию на стороне вашей сети дополнительные настройки маршрутизации не требуются.

Разделение трафика для внутренних и внешних пользователей происходит следующим образом:

  • При подключении внутренних пользователей для просмотра трансляции будет выбран сервер с наименьшей задержкой среди всех доступных серверов.
  • При подключении пользователей из внешней сети прокси-модуль будет недоступен. В таком случае будут использоваться облачные сервера Толка.

Если настроено несколько прокси-модулей, вы можете распределять трафик от внутренних пользователей по своей логике с помощью собственного балансировщика.

Что произойдет, если прокси-модуль окажется недоступен во время трансляции

Пользователи автоматически переключатся на облачные сервера Толка, если имеют доступ во внешнюю сеть. При этом им не нужно будет повторно подключаться к трансляции.

Как посмотреть, отправляются ли запросы до прокси-модуля

Со страницы зрительного зала в консоли браузера можно посмотреть успешные и неуспешные запросы до подключаемого модуля. Для этого:

  1. На странице зрительного зала в браузере откройте консоль разработчика. Для этого воспользуйтесь одним из вариантов:
    • в Windows нажмите клавишу F12 ;
    • в macOS нажмите сочетание клавиш Cmd+Alt+I ;
    • в Linux нажмите сочетание клавиш Ctrl+Alt+I .
  2. В открывшемся окне перейдите на вкладку Network («Сеть»).
  3. В строке фильтра введите значение «diag».


  4. Определить, что запрос был до подключаемого модуля, можно по его домену в колонке Domain («Домен»). Если такой колонки нет, нажмите правой кнопкой мышки на заголовок таблицы и добавьте эту колонку.

Также в логах nginx будет заметна активность по запросам до прокси-модуля.

Как прокси-модуль влияет на учет лицензий? Будут ли пользователи, подключающиеся через него, учитываться в тарифном плане 

Пользователи, подключенные через прокси-модуль, учитываются в тарифном плане как обычно.

Есть ли у Толка инструменты для нагрузочного тестирования

В Толке таких инструментов нет. При необходимости вы можете выполнить нагрузочное тестирование на своей стороне.

Есть ли в Толке ограничения, связанные с защитой от DDoS-атак? Можно ли добавить конкретные подсети в «белый список» 

В Толке используется комплексная защита на стороне балансировщиков нагрузки. Специфичных ограничений нет.

Добавить подсети в «белый список» Толка можно. Для этого обратитесь к своему менеджеру или специалисту по внедрению.

Этап 1

Подготовка к настройке 

Перед выполнением настроек проверьте следующее:

  1. Убедитесь, что на вашей стороне выполняются технические требования:

    • Процессор: одно ядро на каждые 7000 зрителей.

    • Оперативная память: 1,5 Гб на каждую одновременную трансляцию (лицензию) в Толке.

    • Дисковое пространство: 1,5-2 Гб на каждую одновременную трансляцию (лицензию) в Толке.

    • Открыт доступ к портам и подсетям, согласно техническим требованиям Толка.

  2. Наличие домена второго уровня с выпущенными SSL-сертификатами. Для выпуска сертификатов можно воспользоваться публичным центром сертификации (например, Let’s Encrypt).

    SSL-сертификатам должны доверять конечные устройства, с которых планируется просмотр трансляции через прокси-модуль. Обычно достаточно сертификатов от УЦ клиента.
  3. С сервера, на котором устанавливается прокси-модуль, есть доступ до https://stream-cdn0.kontur.host.

  4. У зрителей есть доступ до сервера, который указывается в настройках на этапе 2 → блок «example.com; # Доменное имя хоста».

Этап 2

Настройка прокси-модуля на стороне организации

Выполните настройку одним из способов:

Через изменение в конфигурации nginx

Внесите в файл nginx.conf следующие данные:

proxy_cache_path /tmp levels=1:2 keys_zone=hls_cache:10m max_size=10g inactive=60m use_temp_path=off;

server {
listen 443 ssl;
server_name example.com; # Доменное имя хоста

ssl_certificate /path/to/your_ssl_certificate.crt; # Путь до SSL-сертификата
	ssl_certificate_key /path/to/your_ssl_certificate_key.key; # Путь до ключа SSL-сертификата

	location \~ /(.\*m3u8) {
        proxy_pass https://stream-cdn0.kontur.host/$1;
        proxy_cache hls_cache;
        proxy_cache_valid 200 1s;
        proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
    }

	location \~ /(.\*) {
        proxy_pass https://stream-cdn0.kontur.host/$1;

		if ($request_method = 'OPTIONS') {
            add_header 'Access-Control-Allow-Origin' '\*' always;
            add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS' always;
            add_header 'Access-Control-Allow-Headers' '\*' always;
            add_header 'Access-Control-Allow-Private-Network' 'true' always;
            add_header 'Access-Control-Max-Age' 7200;
            add_header 'Timing-Allow-Origin' '\*' always;
            add_header 'Content-Length' 0;
            add_header 'Content-Type' 'text/plain charset=UTF-8';
            return 204;
        }

        proxy_cache hls_cache;
        proxy_cache_valid 200 1h;
        proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
    }

Через установку Docker-образа из регистра

Версию модуля нужно обновлять вручную. Для этого укажите новую версию в файле docker-compose.yml после «proxy» в строке «image: registry.kontur.ru/stream/proxy:1.0.1».

На данный момент актуальна версия 1.0.1.

  1. Разместите SSL-сертификат и ключ (файлы вида ssl.crt и ssl.key) на хосте в папке с файлом «docker-compose.yml».
  2. В файле «docker-compose.yml» укажите доменное имя хоста, путь до SSL-сертификата и путь до ключа SSL-сертификата по шаблону:
    services:
        proxy:
          image: registry.kontur.ru/stream/proxy:1.0.1
          restart: always
          environment:
            - SSL=true
            - DOMAIN_NAME=example.com # Доменное имя хоста
      
          volumes:
            - ./ssl.crt:/etc/nginx/ssl.crt # Путь до  SSL- сертификата
            - ./ssl.key:/etc/nginx/ssl.key # Путь до ключа SSL-сертификата
          ports:
            - 80:80
            - 443:443
  3. Через командую строку выполните команду «docker compose up -d».

Этап 3

Настройка на стороне Толка

После настройки на стороне вашей корпоративной сети сообщите своему специалисту по внедрению доменное имя вашего хоста в формате https://proxy.example.com . Специалист завершит настройку на стороне Толка.


На связи с коллегами в любых условиях

База знаний