Nginx · Redis · SSL · Lua

Übersicht
Der Hauptserver fungiert nur als Orchestrierer — Authentifizierung, Token-Generierung, CDN-Routing. Er berührt niemals die Streamdaten. Streams fließen direkt von stream server über CDN-Proxies zu den Clients. Jedes Client-Netzwerk verfügt über einen lokalen CDN für niedrige Latenz. Ein öffentlicher CDN-Z dient als Fallback.
Auth, Tokens, Orchestrierung. Keine Streamdaten.
Token-Validierung über Redis, Proxy zu stream server.
Quellstream-Server (HLS/MPEG-TS).
IPTV-Player (VLC, STB, Mobile-App).
Client authentifiziert sich (B2C-API / Play-Link)
Main erstellt Token in Redis (Quell-URL, 24h TTL)
Hauptserver leitet den Client zum besten CDN weiter (302)
Client folgt der Weiterleitung zum CDN
CDN validiert das Token über den Redis des Hauptserver (Net X)
CDN proxiert Stream von stream server zu Client
Fallback
öffentliches Internet
CdnRouter prüft die CDN-Gesundheit alle 30 Sekunden über den /health-Endpunkt. Wenn der beste CDN für das Subnetz des Clients ausgefallen ist, wird auf den nächsten passenden CDN zurückgegriffen (sortiert nach CIDR-Präfixlänge, am spezifischsten zuerst).
Kein CDN gesund -> lokales /cdn/ auf Main (Sicherheitsnetz)
CDN-Auth-Token-Format
Weiterleitungs-URL
CdnToken erkennt und verarbeitet automatisch verschiedene Quell-URL-Formate. Für MPEG-TS oder reine Stream-Pfade prüft er den Server auf HLS-Verfügbarkeit über eine HEAD-Anfrage.
HLS Playlist – direkt verwendet, Master-Playlist auf einzelne Video-Variante + alle Audio-Spuren gefiltert
Rohes MPEG-TS — wird automatisch in HLS konvertiert, wenn der Server dies unterstützt (stream server unterstützt dies immer), andernfalls wird roh mit abgeschaltetem Puffern weitergeleitet
Datei (mp4, m4s, ts, mkv, etc.) — wird direkt als-is weitergeleitet, keine Konvertierung
DASH (mpd) - direkt durchgereicht wie ist
Für HLS-Streams schreibt der nginx Body Filter die Master-Playlist (index.m3u8) neu, um nur die erste Video-Variante zu behalten und alle Audio/Untertitel-Spuren zu erhalten. Dies verhindert, dass Player mehrere Video-Qualitäten gleichzeitig herunterladen.
Vorher (von stream server)
Nachher (an den Client ausgeliefert)
Generiert 32-stellige Hex-Tokens, erkennt automatisch das Format (HLS/MPEG-TS/Datei), normalisiert die URL, speichert in Redis mit SETEX (24h TTL).
Findet den besten gesunden CDN basierend auf der Client-IP (CIDR-Übereinstimmung + Health-Check). Fallback-Kette.
Installiert automatisch nginx + lua-resty-redis + Redis auf CDN-Servern. Injiziert /cdn/ Location in das Hauptnginx.
DB-Modell: domain, ip_scope (CIDR), redis_host (Haupt-IP auf Net X), Gesundheitsstatus.