- होम
- CDN सिम्युलेटर
- ऑरिजिन सर्वर के साथ एकीकरण
ऑरिजिन सर्वर के साथ एकीकरण
यह पृष्ठ दो एकीकरण चरणों को कवर करता है:
- प्रत्यक्ष एकीकरण — CDN एज सीधे ऑरिजिन सर्वर पर फॉरवर्ड करता है (बेसलाइन परीक्षण)
- F5 XC इन्सर्शन — CDN और ऑरिजिन के बीच F5 XC HTTP लोड बैलेंसर इन्सर्ट किया जाता है (सुरक्षा डेमो)
बेसलाइन स्थापित करने के लिए प्रत्यक्ष एकीकरण से शुरू करें, फिर तैयार होने पर F5 XC इन्सर्ट करें।
ऑरिजिन सर्वर संदर्भ
Section titled “ऑरिजिन सर्वर संदर्भ”origin-server लैब घटक सुरक्षा परीक्षण के लिए कमज़ोर वेब एप्लिकेशन प्रदान करता है।
| गुण | मान |
|---|---|
| दस्तावेज़ीकरण | f5-sales-demo.github.io/origin-server |
| रिपॉज़िटरी | github.com/f5-sales-demo/origin-server |
| डिफ़ॉल्ट पोर्ट | 80 |
| हेल्थ चेक | GET /health |
उपलब्ध एप्लिकेशन
Section titled “उपलब्ध एप्लिकेशन”ऑरिजिन-सर्वर के प्रकाशित मेनिफेस्ट से वर्तमान एप्लिकेशन कैटलॉग प्राप्त करें:
MANIFEST_URL=$(curl -sf https://api.github.com/repos/f5-sales-demo/origin-server/releases/latest \ | python3 -c "import sys,json; assets=json.load(sys.stdin).get('assets',[]); print(next((a['browser_download_url'] for a in assets if a['name']=='manifest.json'),''))")curl -sf "$MANIFEST_URL" | python3 -m json.toolयदि अभी तक कोई रिलीज़ मौजूद नहीं है, तो रिपॉज़िटरी स्रोत का सीधे उपयोग करें:
curl -sf https://raw.githubusercontent.com/f5-sales-demo/origin-server/main/manifest.json | python3 -m json.toolमेनिफेस्ट में सभी एप्लिकेशन पथ, हेल्थ चेक, कंटेनर इमेज और डेमो फ़ीचर मैपिंग सूचीबद्ध हैं।
एप्लिकेशन पथ
Section titled “एप्लिकेशन पथ”| पथ | एप्लिकेशन | डेमो विशेषताएँ |
|---|---|---|
/ | लैंडिंग पृष्ठ | — |
/health | हेल्थ चेक | — |
/juice-shop/ | OWASP Juice Shop | वेब ऐप फ़ायरवॉल (WAF), Bot मानक रक्षा, API सुरक्षा |
/dvwa/ | DVWA | वेब ऐप फ़ायरवॉल (WAF), Bot मानक रक्षा |
/vampi/ | VAmPI | API सुरक्षा |
/httpbin/ | httpbin | निदान |
/whoami/ | whoami | हेडर सत्यापन |
/csd-demo/ | CSD Demo | क्लाइंट-साइड डिफेंस |
चरण 1: प्रत्यक्ष एकीकरण (बेसलाइन)
Section titled “चरण 1: प्रत्यक्ष एकीकरण (बेसलाइन)”┌──────────┐ ┌──────────────────────┐ ┌─────────────────────┐│ Client │────▶│ CDN Edge (NGINX) │────▶│ Origin Server ││ │ │ 20.65.90.112 │ │ 20.12.78.159 │└──────────┘ │ 67+ CDN headers │ │ Juice Shop, DVWA, │ │ Disk cache │ │ VAmPI, httpbin, │ └──────────────────────┘ │ whoami, CSD Demo │ └─────────────────────┘ऑरिजिन कॉन्फ़िगर करें
Section titled “ऑरिजिन कॉन्फ़िगर करें”CDN एज NGINX कॉन्फ़िग में ऑरिजिन सर्वर IP सेट करें:
ssh azureuser@<CDN_EDGE_IP>sudo sed -i 's|proxy_pass .*;|proxy_pass http://<ORIGIN_IP>;|' /etc/nginx/conf.d/cdn-edge.confsudo rm -rf /var/cache/nginx/cdn/*sudo nginx -t && sudo systemctl reload nginxया Terraform डिप्लॉय समय पर terraform.tfvars के माध्यम से सेट करें:
origin_server = "http://<ORIGIN_IP>"सभी एप्लिकेशन सत्यापित करें
Section titled “सभी एप्लिकेशन सत्यापित करें”CDN के माध्यम से प्रत्येक ऑरिजिन एप्लिकेशन का परीक्षण करें:
CDN=<CDN_EDGE_IP>
# Health check (CDN local)curl -sf "http://$CDN/health" | python3 -m json.tool
# Landing pagecurl -sf -o /dev/null -w "/ : HTTP %{http_code}\n" "http://$CDN/"
# Juice Shopcurl -sf -o /dev/null -w "/juice-shop/ : HTTP %{http_code}\n" "http://$CDN/juice-shop/"
# DVWA (follows redirect to login)curl -sf -o /dev/null -w "/dvwa/ : HTTP %{http_code}\n" -L "http://$CDN/dvwa/"
# VAmPI APIcurl -sf "http://$CDN/vampi/users/v1" | python3 -m json.tool | head -5
# httpbin headers (shows CDN headers in JSON)curl -sf "http://$CDN/httpbin/headers" | python3 -m json.tool | head -10
# whoami (shows ALL headers the origin receives)curl -sf "http://$CDN/whoami/"
# CSD Democurl -sf -o /dev/null -w "/csd-demo/ : HTTP %{http_code}\n" "http://$CDN/csd-demo/"सभी पथों को HTTP 200 वापस करना चाहिए (DVWA फॉलो पर 302 फिर 200 लौटाता है)।
ऑरिजिन पर CDN हेडर सत्यापित करें
Section titled “ऑरिजिन पर CDN हेडर सत्यापित करें”/whoami/ एंडपॉइंट हर वह हेडर दिखाता है जो ऑरिजिन को प्राप्त होता है। CDN के माध्यम से एक्सेस करने पर, यह सभी 67+ विक्रेता हेडर प्रदर्शित करता है:
curl -sf "http://$CDN/whoami/"सत्यापित करें कि ये प्रमुख हेडर मौजूद हैं:
| विक्रेता | हेडर | अपेक्षित मान |
|---|---|---|
| मानक | X-Forwarded-For | <your_ip>, <cdn_edge_ip> |
| Akamai | True-Client-Ip | <your_ip> |
| Cloudflare | Cf-Connecting-Ip | <your_ip> |
| CloudFront | Cloudfront-Viewer-Country | US |
| Fastly | Fastly-Client-Ip | <your_ip> |
| Azure FD | X-Azure-Clientip | <your_ip> |
क्रॉस-रेफरेंस लॉग
Section titled “क्रॉस-रेफरेंस लॉग”ट्रैफ़िक प्रवाह सत्यापित करने के लिए दोनों सर्वरों पर एक्सेस लॉग की तुलना करें:
# CDN edge log — shows your client IP as sourcessh azureuser@<CDN_EDGE_IP> "sudo tail -5 /var/log/nginx/access.log"
# Origin log — shows CDN edge IP as sourcessh azureuser@<ORIGIN_IP> "sudo tail -5 /var/log/nginx/access.log"ऑरिजिन लॉग में CDN एज IP कनेक्टिंग क्लाइंट के रूप में दिखनी चाहिए, जबकि वास्तविक क्लाइंट IP X-Forwarded-For और विक्रेता-विशिष्ट हेडर में वहन की जाती है।
कैश व्यवहार
Section titled “कैश व्यवहार”# First request — MISS (fetched from origin)curl -s -I "http://$CDN/whoami/" | grep X-Cache-Status
# Second request — HIT (served from CDN cache)curl -s -I "http://$CDN/whoami/" | grep X-Cache-Statusचरण 2: F5 XC इन्सर्शन (सुरक्षा डेमो)
Section titled “चरण 2: F5 XC इन्सर्शन (सुरक्षा डेमो)”बेसलाइन परीक्षण के बाद, CDN और ऑरिजिन के बीच एक F5 XC HTTP लोड बैलेंसर इन्सर्ट करें:
┌──────────┐ ┌────────────────┐ ┌──────────────────┐ ┌─────────────────┐│ Client │────▶│ CDN Edge │────▶│ F5 XC HTTP LB │────▶│ Origin Server ││ │ │ (NGINX) │ │ WAF + Bot + API │ │ │└──────────┘ └────────────────┘ └──────────────────┘ └─────────────────┘- F5 XC HTTP लोड बैलेंसर बनाएं जिसमें ऑरिजिन सर्वर उसके ऑरिजिन पूल में हो
- CDN एज अपडेट करें ताकि वह ऑरिजिन के बजाय F5 XC VIP की ओर संकेत करे:
ssh azureuser@<CDN_EDGE_IP>sudo sed -i 's|proxy_pass .*;|proxy_pass https://<F5XC_LB_VIP>;|' /etc/nginx/conf.d/cdn-edge.confsudo rm -rf /var/cache/nginx/cdn/*sudo nginx -t && sudo systemctl reload nginx- पूरी चेन के माध्यम से WAF प्रवर्तन सत्यापित करें:
# SQL injection through CDN → F5 XC WAF should blockcurl -I "http://$CDN/dvwa/vulnerabilities/sqli/?id=%27+OR+1%3D1--"
# Normal request should passcurl -sf -o /dev/null -w "%{http_code}" "http://$CDN/juice-shop/"- F5 XC में Trusted Client IP हेडर कॉन्फ़िगर करें ताकि CDN हेडर से वास्तविक क्लाइंट IP पढ़ी जा सके (उदाहरण के लिए, Akamai सिमुलेशन के लिए
True-Client-IP, Cloudflare सिमुलेशन के लिएCF-Connecting-IP)
मल्टी-घटक आर्किटेक्चर
Section titled “मल्टी-घटक आर्किटेक्चर”| घटक | रिपॉज़िटरी | उद्देश्य |
|---|---|---|
| CDN Edge (यह) | cdn-simulator | कैशिंग, विक्रेता हेडर |
| ऑरिजिन सर्वर | origin-server | कमज़ोर वेब ऐप |
| F5 XC Config | विभिन्न (waf, api-protection, bot-*, आदि) | सुरक्षा नीतियाँ |
प्रत्येक घटक दस्तावेज़ीकरण प्रकाशित करता है जिसे AI सहायक इंफ्रास्ट्रक्चर डिप्लॉय करने के लिए पढ़ते हैं। ऑरिजिन-सर्वर एक एंडपॉइंट मेनिफेस्ट GitHub Release आर्टिफ़ेक्ट के रूप में प्रकाशित करता है जिसमें सभी एप्लिकेशन पथ और हेल्थ चेक सूचीबद्ध हैं।