×

🌐 Distribution

Nginx · Redis · SSL · Lua

Chính → Luồng → Kiến trúc CDN

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).

Luồng yêu cầu

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

Cấu trúc liên kết mạng

dự phòng

internet công cộng

Kiểm tra tình trạng & chuyển đổi dự phò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)

Chi tiết mã thông báo

Định dạng

Phím Redis

URL chuyển hướng

Các định dạng được hỗ trợ & Chuẩn hóa URL

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

Bộ lọc danh sách phát chính của Nginx

Đố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)

Linh kiện

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.