Назад | Перейти на главную страницу

Обратное проксирование потока HLS с помощью nginx

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

Я успешно использовал proxy_pass для файлов .ts, chunklist и playlist, и я успешно кэширую мультимедийные файлы, чтобы трафик на вышестоящий сервер находился на таком уровне, как если бы это были 1/2 пользователя.

Проблема в том, что когда я пытался кэшировать файл списка фрагментов (всего на 1 секунду), поток иногда задерживался / зависал. Если я этого не сделаю, то исходящий сервер сильно пострадает (я полагаю)?

Должно быть что-то простое, чего мне не хватает.

Между прочим, задержка не очень важна. Это может иметь значительную задержку.

Моя текущая конфигурация:

server {
 listen  80;
 listen [::]:80;
 server_name localhost;
 root /usr/share/nginx/html;

 location ~ ^/(.*pla.*) {
  proxy_pass https://upstream-provider.com/$1;
  proxy_ignore_headers Cache-Control;
  proxy_cache_valid any 5s;
  proxy_hide_header Cache-Control;
  add_header Cache-Control "public, max-age=5";
  proxy_cache edge-cache;
 }

 location ~ ^/(.*chunklist.*) {
  proxy_pass https://upstream-provider.com/$1;
  proxy_ignore_headers Cache-Control;
  proxy_cache_valid any 1s;
  proxy_hide_header Cache-Control;
  add_header Cache-Control "public, max-age=1";
  proxy_cache edge-cache;
 }

 location ~ ^/(.*media.*) {
  proxy_ignore_headers Cache-Control;
  proxy_cache_valid any 2m;
  proxy_hide_header Cache-Control;
  add_header Cache-Control "public, max-age=20";
  proxy_cache edge-cache;
 }

Есть ли способ заставить мой nginx загружать файлы ts / m3u8 и обслуживать их с задержкой в ​​несколько секунд, чтобы можно было заполнить кеш?

Я думал о написании небольшого сервиса, который обрабатывает эту логику, помещает его в файловую систему и заставляет nginx обслуживать файлы из файловой системы. Тогда мне также придется обрабатывать предоставление отложенного списка чанков, что кажется проблемой.

Любые советы приветствуются.