×

🌐 Distribution

Nginx · Redis · SSL · Lua

ראשי ← זרם ← ארכיטקטורת CDN

סקירה כללית

השרת הראשי פועל כמתזמר בלבד - אימות, יצירת אסימונים, ניתוב CDN.

אישור, אסימונים, תזמור.

אימות אסימון באמצעות Redis, פרוקסי ל- stream server.

שרתי זרימת מקור (HLS/MPEG-TS).

נגן IPTV (VLC, STB, אפליקציה לנייד).

בקש זרימה

לקוח מאמת (B2C API / קישור הפעלה)

Main יוצר אסימון ב-Redis (כתובת אתר מקור, 24 שעות TTL)

ראשי מפנה את הלקוח ל-CDN הטוב ביותר (302)

הלקוח עוקב אחר הפניה מחדש ל-CDN

CDN מאמת את האסימון באמצעות Redis של Main (Net X)

פרוקסי CDN זורמים מ- stream server ללקוח

טופולוגיית רשת

נסיגה

אינטרנט ציבורי

בדיקת בריאות וכשל

CdnRouter בודק את תקינות ה-CDN כל 30 שניות דרך /health endpoint.

אין CDN בריא → מקומי /cdn/ ב-Main (רשת ביטחון)

פרטי אסימון

פוּרמָט

Redis Keys

כתובת אתר להפניה מחדש

פורמטים נתמכים ונורמליזציה של כתובת URL

CdnToken מזהה ומטפל באופן אוטומטי בפורמטים שונים של כתובת URL מקור.

רשימת השמעה HLS - בשימוש ישיר, רשימת השמעה ראשית מסוננת לגרסה בודדת של וידאו + כל רצועות האודיו

MPEG-TS גולמי - מומר אוטומטית ל-HLS אם השרת תומך בכך (stream server תמיד עושה זאת), אחרת, פרוקסי גולמי עם חציצה מושבתת

קובץ (mp4, m4s, ts, mkv וכו') - פרוקסי ישירות כפי שהוא, ללא המרה

DASH (mpd) - פרוקסי ישירות כפי שהוא

מסנן רשימות השמעה מאסטר של Nginx

עבור זרמי HLS, מסנן הגוף של nginx משכתב את רשימת ההשמעה הראשית (index.m3u8) כדי לשמור רק על גרסת הווידאו הראשונה תוך שמירה על כל רצועות האודיו/כתוביות.

לפני (מ- stream server)

לאחר (נמסר ללקוח)

רכיבים

מייצר אסימוני hex של 32 תווים, מזהה אוטומטית פורמט (HLS/MPEG-TS/קובץ), מנרמל כתובת URL, מאחסן ב-Redis עם SETEX (24 שעות TTL).

מוצא את ה-CDN הבריא הטוב ביותר לפי לקוח IP (התאמה CIDR + בדיקת תקינות).

מתקין אוטומטית את nginx + lua-resty-redis + Redis בשרתי CDN.

מודל DB: דומיין, ip_scope (CIDR), redis_host (IP ראשי ברשת X), מצב בריאותי.