×

🌐 Distribution

Nginx · Redis · SSL · Lua

Architektura Hlavní → Stream → CDN

Přehled

Hlavní server slouží pouze jako orchestrátor — ověřování, generování tokenů, směrování CDN. Nikdy se nedotýká dat streamu. Streamy proudí přímo z stream server přes proxy CDN ke klientům. Každá síť klienta má lokální CDN pro nízkou latenci. Veřejná CDN-Z slouží jako náhradní cesta.

Ověření, tokeny, orchestrace. Žádná data streamu.

Ověření tokenů přes Redis, proxy na stream server.

Servery zdrojových streamů (HLS/MPEG-TS).

IPTV přehrávač (VLC, STB, mobilní aplikace).

Tok požadavků

Klient se ověří (B2C API / odkaz na přehrávání)

Main vytvoří token v Redisu (source URL, 24h TTL)

Hlavní server přesměruje klienta na nejlepší CDN (302)

Klient následuje přesměrování na CDN

CDN ověří token přes Redis Hlavního serveru (Síť X)

CDN proxy stream z stream server na klienta

Síťová topologie

náhradní cesta

veřejný internet

Zdravotní kontrola a selhání

CdnRouter kontroluje zdraví CDN každých 30s přes endpoint /health. Pokud je nejlepší CDN pro podsíť klienta nedostupná, přepne se na další odpovídající CDN (seřazeno podle délky prefixu CIDR, nejpřesnější první).

Žádná zdravá CDN → lokální /cdn/ na Hlavním serveru (záchranná síť)

Detaily tokenu

Formát

Klíče Redis

URL pro přesměrování

Podporované formáty a normalizace URL

CdnToken automaticky detekuje a zpracovává různé formáty zdrojových URL. Pro MPEG-TS nebo čisté cestě streamu provede dotaz HEAD na serveru pro dostupnost HLS.

HLS playlist — používá se přímo, master playlist filtrován na single video variant + všechny audio stopy

Čistý MPEG-TS — automaticky převeden na HLS, pokud server podporuje (stream server vždy ano), jinak proxy v surové podobě s vypnutým bufferováním

Soubor (mp4, m4s, ts, mkv atd.) — proxy přímo v původní podobě, bez konverze

DASH (mpd) — proxy přímo v původní podobě

Filtr hlavního playlistu Nginx

Pro HLS streamy nginx body filter přepíše master playlist (index.m3u8) tak, aby zůstal pouze první video variant při zachování všech audio/subtitle stop. To zabrání přehrávačům v simultánním stahování více kvalit videa.

Před (z stream server)

Po (dodáno klientovi)

Komponenty

Generuje 32znakové hex tokeny, automaticky detekuje formát (HLS/MPEG-TS/soubor), normalizuje URL, ukládá do Redis s SETEX (TTL 24h).

Najde nejlepší zdravou CDN podle IP klienta (shoda CIDR + kontrola zdraví). Řetězec náhradních cest.

Automaticky instaluje nginx + lua-resty-redis + Redis na servery CDN. Vkláda umístění /cdn/ do hlavního nginx.

Model DB: doména, rozsah IP (CIDR), hostitel redis (Hlavní IP na Síti X), stav zdraví.