Nginx · Redis · SSL · Lua

概要
メインサーバーは、認証、トークン生成、CDN ルーティングなどのオーケストレーターとしてのみ機能します。
認証、トークン、オーケストレーション。
Redis 経由のトークン検証、stream server へのプロキシ。
ソース ストリーム サーバー (HLS/MPEG-TS)。
IPTV プレーヤー (VLC、STB、モバイル アプリ)。
クライアント認証(B2C API / プレイリンク)
Main は Redis でトークンを作成します (ソース URL、24 時間 TTL)
メインはクライアントを最適な CDN (302) にリダイレクトします
クライアントは CDN へのリダイレクトに従います
CDN は Main の Redis (Net X) 経由でトークンを検証します
CDN プロキシは stream server からクライアントへストリーミングします
後退する
公共のインターネット
CdnRouter は、/health エンドポイント経由で 30 秒ごとに CDN の健全性をチェックします。
CDN が正常ではない → メインのローカル /cdn/ (セーフティ ネット)
形式
リダイレクトURL
CdnToken は、さまざまなソース URL 形式を自動的に検出して処理します。
HLS プレイリスト — 直接使用され、単一のビデオ バリアントとすべてのオーディオ トラックにフィルターされたマスター プレイリスト
Raw MPEG-TS — サーバーが HLS をサポートしている場合 (stream server は常にサポートしています)、HLS に自動変換されます。それ以外の場合は、バッファリングをオフにして RAW としてプロキシされます。
ファイル (mp4、m4s、ts、mkv など) — 変換せずにそのまま直接プロキシされます。
DASH (mpd) — そのまま直接プロキシされます
HLS ストリームの場合、nginx ボディ フィルターはマスター プレイリスト (index.m3u8) を書き換えて、すべてのオーディオ/字幕トラックを保持しながら最初のビデオ バリアントのみを保持します。
以前(フルソニックより)
後(お客様へ納品後)
32 文字の 16 進トークンを生成し、形式 (HLS/MPEG-TS/ファイル) を自動検出し、URL を正規化し、SETEX (24 時間 TTL) を使用して Redis に保存します。
クライアント IP ごとに最適な健全な CDN を検索します (CIDR 一致 + ヘルスチェック)。
nginx + lua-resty-redis + Redis を CDN サーバーに自動インストールします。
DB モデル: ドメイン、ip_scope (CIDR)、redis_host (Net X 上のメイン IP)、正常性ステータス。