Nginx · Redis · SSL · Lua

सिंहावलोकन
मुख्य सर्वर केवल ऑर्केस्ट्रेटर के रूप में कार्य करता है - प्रमाणीकरण, टोकन पीढ़ी, सीडीएन रूटिंग।
प्रमाणीकरण, टोकन, ऑर्केस्ट्रेशन।
रेडिस के माध्यम से टोकन सत्यापन, फ्लुसोनिक के लिए प्रॉक्सी।
स्रोत स्ट्रीम सर्वर (एचएलएस/एमपीईजी-टीएस)।
आईपीटीवी प्लेयर (वीएलसी, एसटीबी, मोबाइल ऐप)।
क्लाइंट प्रमाणित करता है (बी2सी एपीआई/प्ले लिंक)
मुख्य रेडिस में टोकन बनाता है (स्रोत यूआरएल, 24 घंटे टीटीएल)
मुख्य क्लाइंट को सर्वोत्तम CDN (302) पर पुनर्निर्देशित करता है
क्लाइंट सीडीएन पर रीडायरेक्ट का अनुसरण करता है
सीडीएन मेन रेडिस (नेट एक्स) के माध्यम से टोकन को मान्य करता है
सीडीएन प्रॉक्सी फ्लुसोनिक से क्लाइंट तक स्ट्रीम होती है
मैदान छोड़ना
सार्वजनिक इंटरनेट
CdnRouter /health समापन बिंदु के माध्यम से हर 30 सेकंड में CDN स्वास्थ्य की जाँच करता है।
कोई सीडीएन स्वस्थ नहीं → स्थानीय /सीडीएन/ मुख्य पर (सुरक्षा जाल)
प्रारूप
यूआरएल पुनर्निर्देशित करें
CdnToken स्वचालित रूप से विभिन्न स्रोत URL प्रारूपों का पता लगाता है और उन्हें संभालता है।
एचएलएस प्लेलिस्ट - सीधे उपयोग किया जाता है, मास्टर प्लेलिस्ट को एकल वीडियो संस्करण + सभी ऑडियो ट्रैक पर फ़िल्टर किया जाता है
रॉ एमपीईजी-टीएस - यदि सर्वर इसका समर्थन करता है तो स्वत: एचएलएस में परिवर्तित हो जाता है (फ्लुसोनिक हमेशा करता है), अन्यथा बफरिंग ऑफ के साथ रॉ को प्रॉक्सी किया जाता है
फ़ाइल (mp4, m4s, ts, mkv, आदि) - सीधे-सीधे प्रॉक्सी की गई, कोई रूपांतरण नहीं
DASH (mpd) - जैसा है वैसा ही प्रत्यक्ष रूप से दर्शाया गया है
एचएलएस स्ट्रीम के लिए, nginx बॉडी फ़िल्टर सभी ऑडियो/उपशीर्षक ट्रैक को संरक्षित करते हुए केवल पहला वीडियो संस्करण रखने के लिए मास्टर प्लेलिस्ट (index.m3u8) को फिर से लिखता है।
पहले (फ्लूसोनिक से)
बाद में (ग्राहक को वितरित)
32-चार हेक्स टोकन जेनरेट करता है, ऑटो-डिटेक्ट फॉर्मेट (HLS/MPEG-TS/फ़ाइल), URL को सामान्य करता है, SETEX (24h TTL) के साथ Redis में स्टोर करता है।
क्लाइंट आईपी (सीआईडीआर मैच + स्वास्थ्य जांच) द्वारा सर्वोत्तम स्वस्थ सीडीएन ढूंढता है।
सीडीएन सर्वर पर nginx + lua-resty-redis + Redis को स्वतः इंस्टॉल करता है।
डीबी मॉडल: डोमेन, आईपी_स्कोप (सीआईडीआर), रेडिस_होस्ट (नेट एक्स पर मुख्य आईपी), स्वास्थ्य स्थिति।