Nginx · Redis · SSL · Lua

Ülevaade
Peamine server toimib ainult orkestreerijana — autentimine, märgise genereerimine, CDN marsruutimine. See ei puuduta kunagi voolu andmeid. Vooed voolavad otse Flussonikast CDN pealekandmiste kaudu klientidele. Igal kliendi võrgul on kohalik CDN madala latentsuse jaoks. Avalik CDN-Z teenib kasutamata.
Auth, märgised, orkestratsioon. Voolu andmeid pole.
Märgise valideerimine Redisse, proksi Flussonikale.
Allikavoodu serverid (HLS/MPEG-TS).
IPTV mängija (VLC, STB, mobiilirakendus).
Klient autentib (B2C API / esituslink)
Peamine loob märgise Redisse (allikale URL, 24h TTL)
Peamine suunab kliendi parimale CDN (302)
Klient järgneb ümbersuunamisele CDN
CDN kinnitab märgi Maini Redise (Net X) kaudu
CDN proksi voog Flussonikast kliendile
tagavara
avalik internet
CdnRouter kontrollib CDN tervist iga 30s kaudu /health lõpp-punkti kaudu. Kui kliendi alamvõrgu parim CDN on all, langeb see järgmise sobituse CDN-i (sorteeritud CIDR eesliidete pikkusega, kõige spetsiifilisem esimene).
CDN terve pole → kohalik /cdn/ peamisel (turvalisusvõrk)
Vorming
Ümbersuunamise URL
CdnToken tuvastab ja käsitleb automaatselt erinevaid lähte-URL-i vorminguid. MPEG-TS või tühja voo teede puhul uurib see serverilt HLS-i saadavust HEAD-päringu kaudu.
HLS esitusloend — kasutatud otse, pealemängija esitusloend filtreeritud ühele video variandile + kõik heliraja
Raw MPEG-TS — automaatselt teisendatud HLS-iks kui server seda toetab (stream server teeb alati), muidu proksitud raw puhvritusega
Fail (mp4, m4s, ts, mkv jne.) — proksitud otse-ees, pole konversioon
DASH (mpd) – puhverserver otse, nagu on
HLS vooga jaoks nginx keha filter kirjutab pealemängija playlisti (index.m3u8) ümber, säilitades ainult esimese video variandi, hoides samal ajal kõik audio/alampealdise rajad. See takistab mängijaid mitme videokvaliteedi samaaegsel allalaadimisel.
Enne (stream server)
Pärast (kliendile tarnitud)
Genereerib 32-tähemärgilisi kuueteistkümnendmärke, tuvastab automaatselt vormingu (HLS/MPEG-TS/fail), normaliseerib URL-i, salvestab Redis koos SETEXiga (24h TTL).
Leiab parimad terved CDN kliendi IP järgi (CIDR sobitamine + tervisekontroll). Failover kett.
Installib nginx + lua-resty-redis + Redis automaatselt CDN-serveritesse. Sisestab /cdn/ asukoha peamisse nginxi.
DB mudel: domeen, ip_scope (CIDR), redis_host (peamine IP võrgus X), tervislik seisund.