×

🌐 Distribution

Nginx · Redis · SSL · Lua

Glavni → Stream → CDN arhitektura

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).

Tijek zahtjeva

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

Topologija mreže

zamjena

javni internet

Provjera Zdravlja & Failover

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)

Detalji tokena

Format

Redis tipke

URL za preusmjeravanje

Podržani Formati & URL Normalizacija

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

Nginx master filter playliste

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)

Komponente

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.