Nginx · Redis · SSL · Lua

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).
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
náhradní cesta
veřejný internet
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íť)
Formát
URL pro přesměrování
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ě
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)
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í.