Nginx · Redis · SSL · Lua

Pregled
Glavni poslužitelj djeluje samo kao orkestrator — autentifikacija, generiranje tokena, CDN usmjeravanje. Nikada ne dodiruje podatke toka. Streamovi teku izravno od stream server preko CDN proxyja do klijenata. Svaka klijentska mreža ima lokalni CDN za nisku latenciju. Javni CDN-Z služi kao zamjena.
Autentifikacija, tokeni, orkestracija. Nema stream podataka.
Validacija tokena putem Redisa, proxy za stream server.
Izvorna stream-a poslužitelja (HLS/MPEG-TS).
IPTV player (VLC, STB, mobilna aplikacija).
Klijent autentificira (B2C API / veza za reprodukciju)
Main stvara token u Redis (URL izvora, TTL 24h)
Glavni preusmjerava klijenta na najbolji CDN (302)
Klijent slijedi preusmjeravanje na CDN
CDN potvrđuje token putem Main Redisa (Net X)
CDN proxy-ja stream iz stream server-a klijentu
zamjena
javni internet
CdnRouter provjerava zdravlje CDN-a svakih 30 sekundi putem krajnje točke /health. Ako najbolji CDN za podmrežu klijenta ne radi, vraća se na sljedeći odgovarajući CDN (razvrstan prema duljini CIDR prefiksa, najspecifičniji prvi).
Nema ispravnog CDN-a → lokalno /cdn/ na glavnom (sigurnosna mreža)
Format
URL za preusmjeravanje
CdnToken automatski otkriva i obrađuje različite izvorne URL formate. Za MPEG-TS ili gole staze toka, ispituje poslužitelj za dostupnost HLS-a putem HEAD zahtjeva.
HLS popis — korišten direktno, master popis filtriran u jedan video varijanta + svi audio zapisi
Sirovi MPEG-TS — automatski se pretvara u HLS ako ga poslužitelj podržava (stream server uvijek podržava), inače se proksira sirovo s isključenim međuspremnikom
Datoteka (mp4, m4s, ts, mkv, itd.) — proksirana izravno kakva jest, bez konverzije
DASH (mpd) — proksiran izravno kakav jest
Za HLS stream-ove, nginx body filter ponovno piše master popis (index.m3u8) da bi zadrži samo prvi video varijanta dok čuva sve audio/subtitle zapise. To sprječava player-e od preuzimanja više video kvaliteta istovremeno.
Prije (iz stream server)
Nakon (isporučeno klijentu)
Generira heksadecimalne tokene od 32 znaka, automatski detektira format (HLS/MPEG-TS/datoteka), normalizira URL, pohranjuje u Redis sa SETEX-om (24h TTL).
Pronalazi najbolji zdravi CDN prema IP-u klijenta (CIDR podudaranje + provjera zdravlja). Rezervni lanac.
Automatski instalira nginx + lua-resty-redis + Redis na CDN poslužiteljima. Ubacuje /cdn/ lokaciju u glavni nginx.
DB model: domena, ip_scope (CIDR), redis_host (Glavni IP na Net X), zdravstveno stanje.