- होम
- CDN सिम्युलेटर
- अवलोकन
अवलोकन
उद्देश्य
Section titled “उद्देश्य”यह घटक लैब और डेमो वातावरण के लिए एक CDN एज नोड का अनुकरण करता है। यह उस भूमिका को दर्शाता है जो Akamai, Cloudflare, Amazon CloudFront, या Fastly जैसे वेंडर किसी ग्राहक की नेटवर्क आर्किटेक्चर में निभाते हैं — वह कैशिंग परत जो अंतिम उपयोगकर्ताओं के सबसे निकट होती है और ऑरिजिन सर्वर के सामने स्थित होती है।
प्रोडक्शन मल्टी-वेंडर आर्किटेक्चर में, ग्राहक आमतौर पर किसी तृतीय-पक्ष CDN को F5 Distributed Cloud के साथ जोड़ते हैं:
End User → CDN Edge (Akamai/Cloudflare/etc.) → F5 XC HTTP LB → Origin Appयह सिम्युलेटर वाणिज्यिक CDN को NGINX-आधारित एज नोड से प्रतिस्थापित करता है, ताकि वेंडर अनुबंध या प्रोडक्शन इन्फ्रास्ट्रक्चर के बिना एकीकरण को प्रदर्शित और परीक्षण किया जा सके।
आर्किटेक्चर
Section titled “आर्किटेक्चर”┌─────────┐ ┌──────────────────────┐ ┌─────────────────┐ ┌────────────┐│ Client │────▶│ CDN Edge (NGINX) │────▶│ F5 XC HTTP LB │────▶│ Origin App ││ │ │ Ubuntu 24.04 Azure │ │ (Origin Server) │ │ │└─────────┘ │ - TLS termination │ └─────────────────┘ └────────────┘ │ - Disk-based cache │ │ - X-Cache-Status │ └──────────────────────┘NGINX एज नोड:
- TLS समाप्त करता है एज पर (सेल्फ-साइन्ड या Let’s Encrypt)
- डिस्क पर रिस्पॉन्स कैश करता है
proxy_cache_pathका उपयोग करके - कैश मिस को अग्रेषित करता है एक कॉन्फ़िगरेबल ऑरिजिन सर्वर (F5 XC HTTP लोड बैलेंसर VIP) की ओर
- कैश स्थिति रिपोर्ट करता है
X-Cache-Statusरिस्पॉन्स हेडर के माध्यम से (HIT,MISS,BYPASS,EXPIRED)
यह क्या अनुकरण करता है
Section titled “यह क्या अनुकरण करता है”| CDN फ़ंक्शन | NGINX कार्यान्वयन |
|---|---|
| एज कैशिंग | proxy_cache डिस्क-आधारित स्टोरेज के साथ |
| कैश की जनरेशन | proxy_cache_key स्कीम, होस्ट और URI पर आधारित |
| ऑरिजिन पुल | proxy_pass F5 XC HTTP लोड बैलेंसर की ओर |
| TLS समाप्ति | NGINX ssl_certificate डायरेक्टिव |
| Cache-Control का सम्मान | proxy_cache_valid ऑरिजिन हेडर पासथ्रू के साथ |
| कैश स्थिति रिपोर्टिंग | add_header X-Cache-Status $upstream_cache_status |
| हेल्थ एंडपॉइंट | /health लोकेशन जो 200 OK लौटाती है |
एंडपॉइंट और अनुरोध/रिस्पॉन्स व्यवहार
Section titled “एंडपॉइंट और अनुरोध/रिस्पॉन्स व्यवहार”हेल्थ चेक
Section titled “हेल्थ चेक”GET /healthरिस्पॉन्स (200 OK, Content-Type: application/json):
{ "status": "healthy", "component": "cdn-edge", "engine": "nginx", "vendor_profiles": ["akamai", "cloudflare", "cloudfront", "fastly", "azure-front-door"]}CDN प्रॉक्सी (अन्य सभी पाथ)
Section titled “CDN प्रॉक्सी (अन्य सभी पाथ)”GET /<any-path>ऑरिजिन की ओर इंजेक्ट किए गए अनुरोध हेडर (5 वेंडरों से 67+ हेडर):
| श्रेणी | जोड़े गए हेडर |
|---|---|
| क्लाइंट IP | True-Client-IP, CF-Connecting-IP, Fastly-Client-IP, X-Azure-ClientIP, CloudFront-Viewer-Address, X-Forwarded-For, X-Real-IP |
| जियोलोकेशन | X-Akamai-Edgescape (कंपाउंड), CF-IPCountry, cf-ipcity, cf-iplatitude/longitude, CloudFront-Viewer-Country/City/Latitude/Longitude, X-Geo-Country-Code/City/Region |
| डिवाइस डिटेक्शन | CloudFront-Is-Mobile-Viewer, CloudFront-Is-Desktop-Viewer, CloudFront-Is-Tablet-Viewer, X-Akamai-Device-Characteristics |
| TLS/फिंगरप्रिंट | CloudFront-Viewer-TLS, cf-ja3-hash, cf-ja4, CloudFront-Viewer-JA3-Fingerprint |
| Bot डिटेक्शन | cf-bot-score (85 = संभवतः मानव), cf-verified-bot |
| अनुरोध ट्रेसिंग | Cf-Ray, X-Akamai-Request-ID, X-Amz-Cf-Id, X-Azure-Ref |
| एज पहचान | X-CDN-Edge, X-CDN-POP, X-Served-By, Fastly-FF, X-Azure-FDID |
| मानक | Via, Forwarded, CDN-Loop, X-Forwarded-Proto/Host/Port |
प्रत्येक प्रॉक्सीड रिस्पॉन्स में जोड़े गए रिस्पॉन्स हेडर:
| हेडर | मान | उद्देश्य |
|---|---|---|
X-Cache-Status | HIT, MISS, BYPASS, EXPIRED, STALE | इस अनुरोध के लिए कैश व्यवहार |
X-CDN-Edge | cdn-simulator | इस एज नोड की पहचान करता है |
X-CDN-POP | SJC | अनुकरणीय Point of Presence IATA कोड |
X-Served-By | cache-sjc3120-SJC | Fastly फ़ॉर्मेट में अनुकरणीय कैश नोड |
X-Request-ID | UUID (प्रति-अनुरोध) | अद्वितीय अनुरोध पहचानकर्ता |
कैश व्यवहार
Section titled “कैश व्यवहार”- किसी भी पाथ पर पहला अनुरोध:
X-Cache-Status: MISS(ऑरिजिन से प्राप्त, अब कैश किया गया) - बाद के समान अनुरोध:
X-Cache-Status: HIT(डिस्क कैश से परोसा गया) - कैश की:
$scheme$host$request_uri(स्कीम + होस्टनेम + पूरा पाथ + क्वेरी स्ट्रिंग) - कैश TTL: 200/301/302 के लिए 10 मिनट, 404 के लिए 1 मिनट
- स्टेल सर्विंग: ऑरिजिन त्रुटियों (500/502/503/504) पर कैश की गई सामग्री लौटाता है
VM एक्सेस
Section titled “VM एक्सेस”| एक्सेस विधि | कमांड/पाथ |
|---|---|
| SSH | ssh azureuser@<PUBLIC_IP> |
| NGINX कॉन्फ़िग | /etc/nginx/conf.d/cdn-edge.conf |
| NGINX लॉग | /var/log/nginx/access.log और /var/log/nginx/error.log |
| कैश डायरेक्टरी | /var/cache/nginx/cdn/ |
| Cloud-init लॉग | /var/log/cloud-init-output.log |
मॉड्यूलर घटक डिज़ाइन
Section titled “मॉड्यूलर घटक डिज़ाइन”यह एक बड़े लैब वातावरण का एक हिस्सा है। प्रत्येक घटक स्वतंत्र है और अलग-अलग तैनात किया जाता है:
- यह घटक CDN एज प्रदान करता है (Azure VM पर NGINX)
- अन्य घटक ऑरिजिन एप्लिकेशन, F5 XC कॉन्फ़िगरेशन, DNS, वेब ऐप फ़ायरवॉल (WAF) नीतियाँ आदि प्रदान करते हैं।
मानव ऑपरेटर एक समय में एक घटक जोड़ता है। प्रत्येक घटक का दस्तावेज़ीकरण इस प्रकार लिखा गया है कि एक AI सहायक उसे पढ़कर स्वायत्त रूप से इन्फ्रास्ट्रक्चर तैनात कर सके।
NGINX क्यों
Section titled “NGINX क्यों”NGINX को CDN सिम्युलेशन इंजन के रूप में इसलिए चुना गया:
- F5 उत्पाद — F5 ने 2019 में NGINX Inc. का अधिग्रहण किया; यह F5 पोर्टफोलियो का हिस्सा है
- उद्योग-सिद्ध — Cloudflare ने Pingora पर माइग्रेट करने से पहले एक दशक से अधिक समय तक अपना पूरा CDN NGINX पर चलाया; Netflix अपने Open Connect CDN के लिए NGINX का उपयोग करता है
- एकल प्रक्रिया — एक ही बाइनरी में TLS समाप्ति और कैशिंग संभालता है, Varnish के विपरीत जिसे एक अलग TLS प्रॉक्सी की आवश्यकता होती है
- सरल तैनाती — Ubuntu 24.04 पर
apt install nginx, दो डायरेक्टिव कैशिंग सक्षम करते हैं - अच्छी तरह दस्तावेज़ीकृत — कंटेंट कैशिंग और रिवर्स प्रॉक्सी कॉन्फ़िगरेशन के लिए विस्तृत आधिकारिक दस्तावेज़ीकरण