Nginx · Redis · SSL · Lua

Oversigt
Hovedserveren fungerer kun som orkestrator — autentificering, token-generering, CDN-routning. Den rører aldrig streamdata. Streams flytter direkte fra stream server gennem CDN-proxys til klienter. Hvert klientnetværk har et lokalt CDN til lav forsinkelse. Et offentligt CDN-Z fungerer som fallback.
Autentificering, tokens, orkestrering. Ingen streamdata.
Tokenvalidering via Redis, proxy til stream server.
Kilde-streamservere (HLS/MPEG-TS).
IPTV-spiller (VLC, STB, mobilapp).
Klient autentificerer (B2C-API / play-link)
Hoved opretter token i Redis (kilde-URL, 24t TTL)
Hoved videresender klient til bedste CDN (302)
Klient følger omdirigering til CDN
CDN validerer token via hovedets Redis (net X)
CDN proxyer stream fra stream server til klient
fallback
offentligt internet
CdnRouter tjekker CDN-sundhed hvert 30. sekund via /health-endpoint. Hvis det bedste CDN for klientens subnet er nede, falder det tilbage til næste matchende CDN ( sorteret efter CIDR-præfixlængde, mest specifik først).
Intet CDN sundt → lokal /cdn/ på hoved (sikkerhedsnet)
Format
Omdirigerings-URL
CdnToken detekterer automatisk og håndterer forskellige kilde-URL-formater. For MPEG-TS eller rå stream-stier probinges serveren for HLS-tilgængelighed via HEAD-anmodning.
HLS-playlist — bruges direkte, master-playlist filtreret til enkelt videovariant + alle lydsporene
Rå MPEG-TS — autoconverteret til HLS, hvis serveren understøtter det (stream server gør det altid), ellers proxys rå med puffring slukket
Fil (mp4, m4s, ts, mkv osv.) — proxys direkte som det er, ingen konvertering
DASH (mpd) — proxys direkte som det er
For HLS-streams omskriver nginx body-filter master-playlisten (index.m3u8) til kun at beholde den første videovariant, mens alle lyd-/undertitelssporene bevares. Dette forhindrer spillere i at downloade flere videokvaliteter samtidigt.
Før (fra stream server)
Efter (leveret til klient)
Genererer 32-tegn hex-tokens, autogendækker format (HLS/MPEG-TS/fil), normaliserer URL, gemmer i Redis med SETEX (24t TTL).
Finder det bedste sunde CDN ved klient-IP (CIDR-match + sundhedscheck). Nedtrapningskæde.
Autoinstallerer nginx + lua-resty-redis + Redis på CDN-servere. Indsprøjter /cdn/placering i hovednginx.
DB-model: domæne, ip_scope (CIDR), redis_host (Hoved-IP på net X), helbredelsesstatus.