Nginx · Redis · SSL · Lua

Panoramica
Il server principale agisce solo come orchestratore — autenticazione, generazione token, routing CDN
Autenticazione, token, orchestrazione
Validazione token tramite Redis, proxy verso stream server
Server stream sorgente (HLS/MPEG-TS)
Client IPTV (VLC, STB, app mobile)
Il client si autentica (API B2C / link play)
Il main crea il token in Redis (URL sorgente, TTL 24h)
Il main reindirizza il client al CDN migliore (302)
Il client segue il reindirizzamento verso CDN
Il CDN convalida il token tramite Redis del main (Net X)
Il CDN fa da proxy allo stream dal stream server al client
fallback
internet pubblico
CdnRouter verifica la salute del CDN ogni 30s tramite l'endpoint /health. Se il CDN migliore per il subnet del cliente è offline, passa al CDN successivo (ordinato per lunghezza del prefisso CIDR, più specifico per primo).
Nessun CDN sano -> /cdn/ locale su Main (rete di sicurezza)
Formato
URL di reindirizzamento
CdnToken rileva automaticamente e gestisce diversi formati URL sorgente
Playlist HLS (m3u8) — proxy e riscrittura della variante video (prima pista video)
MPEG-TS (ts) — proxy diretto, nessuna conversione
File (mp4, m4s, ts, mkv, ecc.) — proxy diretto così com'è, nessuna conversione
DASH (mpd) — proxy diretto
Per gli stream HLS, il body filter di nginx riscrive la playlist master (index.m3u8) mantenendo solo la prima variante video preservando tutti i track audio/sottotitolo. Questo impedisce ai player di scaricare simultaneamente multiple qualità video.
Prima (da stream server)
Dopo (erogato al client)
Genera token esadecimali da 32 caratteri, rileva automaticamente il formato (HLS/MPEG-TS/file), normalizza l'URL, memorizza in Redis con SETSE (TTL 24h).
Trova il CDN più sano per l'IP del cliente (corrispondenza CIDR + verifica stato). Catena di fallback.
Installazione automatica di nginx + lua-resty-redis + Redis sui server CDN. Inietta la posizione /cdn/ nel nginx principale.
Modello DB: dominio, ip_scope (CIDR), redis_host (IP principale su Net X), stato di salute.