×

🌐 Distribution

Nginx · Redis · SSL · Lua

หลัก → สตรีม → สถาปัตยกรรม CDN

ภาพรวม

เซิร์ฟเวอร์หลักทำหน้าที่เป็นผู้ควบคุมเท่านั้น — การรับรองความถูกต้อง การสร้างโทเค็น การกำหนดเส้นทาง CDN

การรับรองความถูกต้อง โทเค็น การเรียบเรียง

การตรวจสอบโทเค็นผ่าน Redis พร็อกซีไปยัง stream server

เซิร์ฟเวอร์สตรีมต้นทาง (HLS/MPEG-TS)

เครื่องเล่น IPTV (VLC, STB, แอพมือถือ)

ขอกระแส

ลูกค้ารับรองความถูกต้อง (B2C API / ลิงค์เล่น)

Main สร้างโทเค็นใน Redis (URL ต้นทาง, TTL 24 ชั่วโมง)

ลูกค้าเปลี่ยนเส้นทางหลักไปยัง CDN ที่ดีที่สุด (302)

ลูกค้าติดตามการเปลี่ยนเส้นทางไปยัง CDN

CDN ตรวจสอบโทเค็นผ่าน Redis ของ Main (Net X)

พร็อกซี CDN สตรีมจาก stream server ไปยังไคลเอนต์

โทโพโลยีเครือข่าย

ทางเลือก

อินเทอร์เน็ตสาธารณะ

การตรวจสุขภาพและการเฟลโอเวอร์

CdnRouter ตรวจสอบสุขภาพ CDN ทุกๆ 30 วินาทีผ่าน /health endpoint

ไม่มี CDN ที่ดีต่อสุขภาพ → ท้องถิ่น /cdn/ บน Main (ตาข่ายนิรภัย)

รายละเอียดโทเค็น

รูปแบบ

เรดิส คีย์ส

URL เปลี่ยนเส้นทาง

รูปแบบที่รองรับและการทำให้ URL เป็นมาตรฐาน

CdnToken ตรวจจับและจัดการรูปแบบ URL แหล่งที่มาที่แตกต่างกันโดยอัตโนมัติ

เพลย์ลิสต์ HLS — ใช้โดยตรง เพลย์ลิสต์หลักกรองเป็นวิดีโอเดี่ยวและแทร็กเสียงทั้งหมด

Raw MPEG-TS - แปลงเป็น HLS อัตโนมัติหากเซิร์ฟเวอร์รองรับ (stream server จะทำเสมอ) มิฉะนั้นจะเป็นพร็อกซีดิบโดยปิดบัฟเฟอร์

ไฟล์ (mp4, m4s, ts, mkv ฯลฯ) — พร็อกซีโดยตรงตามที่เป็นอยู่ ไม่มีการแปลง

DASH (mpd) — พร็อกซีโดยตรงตามที่เป็น

ตัวกรองเพลย์ลิสต์ Nginx Master

สำหรับสตรีม HLS ตัวกรองเนื้อหา nginx จะเขียนเพลย์ลิสต์หลักใหม่ (index.m3u8) เพื่อเก็บเฉพาะวิดีโอรูปแบบแรกในขณะที่ยังคงรักษาแทร็กเสียง/คำบรรยายทั้งหมด

ก่อน (จาก stream server)

หลังจาก (ส่งถึงลูกค้า)

ส่วนประกอบ

สร้างโทเค็นฐานสิบหก 32 อักขระ รูปแบบการตรวจจับอัตโนมัติ (HLS/MPEG-TS/ไฟล์) ปรับมาตรฐาน URL จัดเก็บใน Redis ด้วย SETEX (TTL 24 ชั่วโมง)

ค้นหา CDN เพื่อสุขภาพที่ดีที่สุดตาม IP ไคลเอนต์ (การจับคู่ CIDR + การตรวจสุขภาพ)

ติดตั้ง nginx + lua-resty-redis + Redis อัตโนมัติบนเซิร์ฟเวอร์ CDN

โมเดล DB: โดเมน, ip_scope (CIDR), redis_host (IP หลักบน Net X), สถานะสุขภาพ