×

🌐 Distribution

Nginx · Redis · SSL · Lua

Pää → Stream → CDN-arkkitehtuuri

Yleiskatsaus

Pääpalvelin toimii vain orkestroijana — tunnistautuminen, tunnisteiden luonti, CDN-reititys. Se ei koskaan käsittele streamidataa. Streamit virtaavat suoraan stream server CDN-välityspalvelimien kautta asiakkaille. Jokaisella asiakasverkolla on paikallinen CDN matalan viiveen takaamiseksi. Julkinen CDN-Z toimii varana.

Tunnistautuminen, tunnisteet, orkestrointi. Ei streamidataa.

Tunnisteen tarkistus Redisin kautta, välitys stream server.

Lähdevirta-palvelimet (HLS/MPEG-TS).

IPTV-soitin (VLC, STB, mobiilisovellus).

Pyyntövirta

Asiakas tunnistautuu (B2C API / toistolinki)

Main luo polkkua Redisiin (lähde-URL, 24h TTL)

Pääpalvelin ohjaa asiakkaan parhaalle CDN:lle (302)

Asiakas seuraa uudelleenohjausta CDN:lle

CDN tarkistaa tunnisteen pääpalvelimen Redisin kautta (Verkko X)

CDN lähettää virran Fluusoniksesta asiakkaalle

Verkkotopologia

varasuunnitelma

julkinen internet

Terveystarkistus ja vika-asennus

CdnRouter tarkistaa CDN-terveyden 30s välein /health-päätepisteestä. Jos asiakkaan aliverkon paras CDN on alhaalla, siirrytään seuraavaan vastaavaan CDN:ään (lajiteltuna CIDR-etuliitteen pituuden mukaan, tarkin ensin).

Ei terveellistä CDN:ää → paikallinen /cdn/ pääpalvelimella (turvajärjestelmä)

Tunnisteen tiedot

Muoto

Redis-avaimet

Uudelleenohjaus URL

Tuetut muodot ja URL-normalisointi

CdnToken tunnistaa ja käsittelee automaattisesti eri lähde-URL-muodot. MPEG-TS- tai pelkille streamipoluille se tutkii palvelimen HLS-saatavuuden HEAD-pyynnöllä.

HLS-soittolista - käytetään suoraan, pääsoittolista suodatettu yhteen videon muunnokseen + kaikki äänitaulukot

Raaka MPEG-TS — muunnetaan automaattisesti HLS:ksi jos palvelin tukee (stream server tukee aina), muuten välitetään raakana puskurointi pois päältä

Tiedosto (mp4, m4s, ts, mkv jne.) — välitetään suoraan sellaisenaan, ei muunnosta

DASH (mpd) — välitetään suoraan sellaisenaan

Nginx-pääsoittolistan suodatin

HLS-virroille nginx-runko-suodatin kirjoittaa pääsoittolistaindeksin (index.m3u8) pitäen vain ensimmäisen videon muunnoksen samalla säilyttäen kaikki ääniraidat/tekstitykset. Tämä estää pelaajia lataamasta useita videon laatuja samanaikaisesti.

Ennen (stream server)

Jälkeen (toimitettu asiakkaalle)

Osat

Luo 32-merkkisiä hex-tunnisteita, tunnistaa muodon automaattisesti (HLS/MPEG-TS/tiedosto), normalisoi URL:n, tallentaa Redisiin SETEX:llä (24h TTL).

Löytää parhaan terveen CDN:n asiakkaan IP:n perusteella (CIDR-vastaavuus + terveystarkistus). Varaketju.

Asentaa automaattisesti nginx + lua-resty-redis + Redis CDN-palvelimille. Lisää /cdn/-sijainnin pääasialliseen nginxiin.

Tietokantamalli: domain, ip_scope (CIDR), redis_host (pääasiallinen IP verkossa X), terveystila.