Nginx · Redis · SSL · Lua

جائزہ
مین سرور صرف آرکیسٹریٹر کے طور پر کام کرتا ہے — توثیق، ٹوکن جنریشن، سی ڈی این روٹنگ۔
تصدیق، ٹوکن، آرکیسٹریشن۔
Redis کے ذریعے ٹوکن کی توثیق، stream server پراکسی۔
سورس اسٹریم سرورز (HLS/MPEG-TS)۔
آئی پی ٹی وی پلیئر (VLC، STB، موبائل ایپ)۔
کلائنٹ کی تصدیق (B2C API / پلے لنک)
مین ریڈیس میں ٹوکن بناتا ہے (ماخذ URL، 24h TTL)
مین کلائنٹ کو بہترین CDN (302) پر ری ڈائریکٹ کرتا ہے
کلائنٹ CDN پر ری ڈائریکٹ کی پیروی کرتا ہے۔
CDN مینز ریڈیس (نیٹ ایکس) کے ذریعے ٹوکن کی توثیق کرتا ہے
CDN پراکسی stream server سے کلائنٹ تک جاتی ہیں۔
فال بیک
عوامی انٹرنیٹ
CdnRouter ہر 30s بعد /health endpoint کے ذریعے CDN کی صحت کو چیک کرتا ہے۔
کوئی CDN صحت مند نہیں ہے → مقامی /cdn/ مین پر (حفاظتی نیٹ)
فارمیٹ
ری ڈائریکٹ URL
CdnToken خود بخود مختلف سورس یو آر ایل فارمیٹس کا پتہ لگاتا اور ہینڈل کرتا ہے۔
HLS پلے لسٹ — براہ راست استعمال کی گئی، ماسٹر پلے لسٹ کو ایک ویڈیو ویرینٹ میں فلٹر کیا گیا + تمام آڈیو ٹریکس
Raw MPEG-TS — اگر سرور اسے سپورٹ کرتا ہے تو خودکار طور پر HLS میں تبدیل ہو جاتا ہے (stream server ہمیشہ کرتا ہے)، بصورت دیگر بفرنگ آف کے ساتھ پراکسیڈ
فائل (mp4، m4s، ts، mkv، وغیرہ) — پراکسی براہ راست جیسا کہ ہے، کوئی تبدیلی نہیں
DASH (mpd) — پراکسی براہ راست جیسا کہ ہے۔
HLS اسٹریمز کے لیے، nginx باڈی فلٹر ماسٹر پلے لسٹ (index.m3u8) کو دوبارہ لکھتا ہے تاکہ تمام آڈیو/سب ٹائٹل ٹریکس کو محفوظ رکھتے ہوئے صرف پہلا ویڈیو ویرینٹ رکھا جائے۔
اس سے پہلے (stream server سے)
کے بعد (کلائنٹ کو پہنچایا گیا)
32-char hex ٹوکنز تیار کرتا ہے، خودکار طریقے سے پتہ لگاتا ہے فارمیٹ (HLS/MPEG-TS/file)، URL کو معمول بناتا ہے، SETEX (24h TTL) کے ساتھ Redis میں اسٹور کرتا ہے۔
کلائنٹ آئی پی (CIDR میچ + ہیلتھ چیک) کے ذریعہ بہترین صحت مند CDN تلاش کرتا ہے۔
CDN سرورز پر nginx + lua-resty-redis + Redis کو خود بخود انسٹال کرتا ہے۔
DB ماڈل: ڈومین، ip_scope (CIDR)، redis_host (Net X پر مین IP)، صحت کی حیثیت۔