Nginx · Redis · SSL · Lua

Tổng quan
Máy chủ chính chỉ đóng vai trò là người điều phối - xác thực, tạo mã thông báo, định tuyến CDN.
Xác thực, mã thông báo, điều phối.
Xác thực mã thông báo qua Redis, proxy cho stream server.
Máy chủ luồng nguồn (HLS/MPEG-TS).
Trình phát IPTV (VLC, STB, ứng dụng di động).
Khách hàng xác thực (API B2C/liên kết phát)
Main tạo token trong Redis (URL nguồn, 24h TTL)
Main chuyển hướng client tới CDN tốt nhất (302)
Khách hàng theo dõi chuyển hướng đến CDN
CDN xác thực mã thông báo thông qua Redis của Main (Net X)
Proxy CDN truyền từ stream server đến máy khách
dự phòng
internet công cộng
CdnRouter kiểm tra tình trạng CDN cứ sau 30 giây thông qua điểm cuối /health.
Không có CDN lành mạnh → local /cdn/ trên Main (mạng an toàn)
Định dạng
URL chuyển hướng
CdnToken tự động phát hiện và xử lý các định dạng URL nguồn khác nhau.
Danh sách phát HLS - được sử dụng trực tiếp, danh sách phát chính được lọc thành một biến thể video + tất cả các bản âm thanh
MPEG-TS thô - tự động chuyển đổi sang HLS nếu máy chủ hỗ trợ nó (stream server luôn hỗ trợ), nếu không thì được ủy quyền thô với tính năng đệm tắt
Tệp (mp4, m4s, ts, mkv, v.v.) - được ủy quyền trực tiếp, không chuyển đổi
DASH (mpd) — được ủy quyền trực tiếp nguyên trạng
Đối với các luồng HLS, bộ lọc nội dung nginx ghi lại danh sách phát chính (index.m3u8) để chỉ giữ lại biến thể video đầu tiên trong khi vẫn giữ nguyên tất cả các bản âm thanh/phụ đề.
Trước (từ stream server)
Sau (giao cho khách hàng)
Tạo mã thông báo hex 32 ký tự, tự động phát hiện định dạng (HLS/MPEG-TS/tệp), chuẩn hóa URL, lưu trữ trong Redis với SETEX (24h TTL).
Tìm CDN hoạt động tốt nhất theo IP của khách hàng (kết quả CIDR + kiểm tra tình trạng).
Tự động cài đặt nginx + lua-resty-redis + Redis trên máy chủ CDN.
Mô hình DB: tên miền, ip_scope (CIDR), redis_host (IP chính trên Net X), trạng thái sức khỏe.