Nginx · Redis · SSL · Lua

கண்ணோட்டம்
முதன்மை சேவையகம் ஆர்கெஸ்ட்ரேட்டராக மட்டுமே செயல்படுகிறது - அங்கீகாரம், டோக்கன் உருவாக்கம், CDN ரூட்டிங்.
அங்கீகாரம், டோக்கன்கள், ஆர்கெஸ்ட்ரேஷன்.
Redis வழியாக டோக்கன் சரிபார்ப்பு, stream server க்கு ப்ராக்ஸி.
மூல ஸ்ட்ரீம் சேவையகங்கள் (HLS/MPEG-TS).
IPTV பிளேயர் (VLC, STB, மொபைல் பயன்பாடு).
கிளையண்ட் அங்கீகரிக்கிறது (B2C API / play இணைப்பு)
ரெடிஸில் முதன்மை உருவாக்குகிறது டோக்கன் (மூல URL, 24h TTL)
முக்கிய கிளையண்டை சிறந்த CDN (302) க்கு திருப்பி விடுகிறது
வாடிக்கையாளர் CDNக்கு திருப்பி விடப்படுவதைப் பின்தொடர்கிறார்
சிடிஎன் மெயின்ஸ் ரெடிஸ் (நெட் எக்ஸ்) வழியாக டோக்கனைச் சரிபார்க்கிறது
CDN ப்ராக்ஸிகள் stream server இலிருந்து கிளையண்டிற்கு ஸ்ட்ரீம் செய்கின்றன
பின்னடைவு
பொது இணையம்
CdnRouter /health endpoint வழியாக ஒவ்வொரு 30 வினாடிகளுக்கும் CDN ஆரோக்கியத்தை சரிபார்க்கிறது.
CDN ஆரோக்கியமாக இல்லை → லோக்கல் /சிடிஎன்/ மெயினில் (பாதுகாப்பு வலை)
வடிவம்
URL ஐ திருப்பிவிடவும்
CdnToken தானாகவே வெவ்வேறு மூல URL வடிவங்களைக் கண்டறிந்து கையாளுகிறது.
HLS பிளேலிஸ்ட் — நேரடியாகப் பயன்படுத்தப்படுகிறது, முதன்மை பிளேலிஸ்ட் ஒற்றை வீடியோ மாறுபாடு + அனைத்து ஆடியோ டிராக்குகளுக்கும் வடிகட்டப்பட்டது
Raw MPEG-TS — சேவையகம் ஆதரிக்கும் பட்சத்தில் HLS ஆக தானாக மாற்றப்படும் (stream server எப்பொழுதும் செய்யும்), இல்லையெனில் ப்ராக்சி செய்யப்பட்ட raw உடன் buffering off
கோப்பு (mp4, m4s, ts, mkv, முதலியன) — நேரடியாக ப்ராக்ஸி செய்யப்பட்டது, மாற்றம் இல்லை
DASH (mpd) - நேரடியாக ப்ராக்ஸி செய்யப்பட்டது
HLS ஸ்ட்ரீம்களுக்கு, nginx பாடி ஃபில்டர் முதன்மை பிளேலிஸ்ட்டை (index.m3u8) மாற்றியமைத்து, அனைத்து ஆடியோ/சப்டைட்டில் டிராக்குகளையும் பாதுகாக்கும் போது முதல் வீடியோ மாறுபாட்டை மட்டும் வைத்திருக்கும்.
முன் (stream server இலிருந்து)
பிறகு (வாடிக்கையாளருக்கு வழங்கப்பட்டது)
32-சார் ஹெக்ஸ் டோக்கன்களை உருவாக்குகிறது, தானாக கண்டறியும் வடிவமைப்பை (HLS/MPEG-TS/file), URL ஐ இயல்பாக்குகிறது, SETEX (24h TTL) உடன் Redis இல் சேமிக்கிறது.
கிளையன்ட் ஐபி (சிஐடிஆர் மேட்ச் + ஹெல்த் செக்) மூலம் சிறந்த ஆரோக்கியமான சிடிஎன் கண்டுபிடிக்கிறது.
CDN சேவையகங்களில் nginx + lua-resty-redis + Redis ஐ தானாக நிறுவுகிறது.
DB மாதிரி: டொமைன், ip_scope (CIDR), redis_host (Net X இல் முதன்மை IP), சுகாதார நிலை.