GH GambleHub

सीडीएन और एज कैशिंग

सीडीएन और एज कैशिंग

1) उद्देश्य

सीडीएन (कंटेंट डिलीवरी नेटवर्क) विलंबता को कम करता है और मूल पर लोड करता है: एज नोड्स पर कैश स्थिर और सशर्त रूप से गतिशील सामग्री, पैमाने, स्थिरता और सुरक्षा प्रदान करता है (डीडीओएस/डब्ल्यूएएफ), एज।

2) कैश मॉडल और चाबियाँ

= 'योजना + होस्ट + पथ +? (चयनित क्वेरी पैराम्स) + हेडर (वैरी)'

अनुशंसित:
  • क्वेरी को सामान्य करें ('utm _' बाहर,' v ',' lang ',' देश ', आदि)।
  • मिनिमाइज़ 'वैरी' (उदाहरण के लिए, 'वैरी: एक्सेप्ट-एनकोडिंग, एक्सेप्ट-लैंग्वेज'), 'वैरी:' से बचें।
  • एपीआई के लिए - रूट + संस्करण पहचानकर्ता (सेवर, हैश, बिल्ड आईडी) + आवश्यक क्वेरी/हेडर (उदाहरण के लिए, 'एक्स-किरायेदार') से कुंजी।
  • व्यक्तिगत पृष्ठों के लिए - एज-सेगमेंटेशन (कुकी/जियो द्वारा) या स्किप-कैश।

3) टीटीएल नीतियां और शीर्षक

आधार शीर्षक:
  • 'कैश-कंट्रोल: सार्वजनिक, अधिकतम आयु = 300, एस-मैक्सेज = 3600, बासी-जबकि-पुनर्नवीनीकरण = 60, बासी-यदि त्रुटि = 300'
  • 'सरोगेट-कंट्रोल' (यदि समर्थित है) ब्राउज़र के अलावा सीडीएन के लिए एक अलग नीति है।
  • 'ETag '/' अंतिम-संशोधित' - सशर्त अनुरोध (304) और यातायात बचत।
  • निजी के लिए: 'कैश-कंट्रोल: निजी, नो-स्टोर', अगर कैश नहीं किया गया।
  • एपीआई जो कैश की अनुमति देता है: 'कैश-कंट्रोल: सार्वजनिक, एस-मैक्सेज = 60' + संस्करण कुंजी।

अनुशंसित दृष्टिकोण: "अनन्त" संसाधन (फ़ाइल नाम में फिंगरप्रिंट के साथ) → 'अधिकतम आयु = 31536000, अपरिवर्तनीय'; "पृष्ठ/JSON" → लघु TTL + SWR।

4) विकलांगता: शुद्ध/सॉफ्ट-पर्ज

URL द्वारा शुद्ध: बिंदुवार।

टैग/कुंजी द्वारा शुद्ध: समूह पर्स ('सरोगेट-की: उत्पादों: 42 श्रेणी: भोजन' का उपयोग करें)।

सॉफ्ट-पर्ज: सामग्री "पुरानी" को चिह्नित करता है, एज एक नया संस्करण प्राप्त होने तक बासी देता है।

"वार्म" वार्मिंग: तैनाती के बाद, क्षेत्रों से मुख्य पृष्ठों को खींचें।

5) एज परफॉर्मेंस पैटर्न

बासी-जबकि-Revalidate: "पुरानी" कॉपी + पृष्ठभूमि अपडेट के साथ त्वरित प्रतिक्रिया।

महत्वपूर्ण संसाधनों का प्रीफेच (प्रीलोड, प्रीकनेक्ट, dns-prefetch)।

संपीडनः gzip/br (पाठ के लिए), zstd यदि CDN समर्थित है.

HTTP/2/3 (QUIC): मल्टीप्लेक्सिंग और कम विलंबता।

TLS सत्र फिर से शुरू और OCSP परिधि पर स्टेपलिंग।

6) छवियाँ और वीडियो

किनारे पर छवि अनुकूलन: आकार/प्रारूप वार्ता ('स्वीकार करें: छवि/एविफ़, वेब'), авто -WebP/AVIF, DPR- варианты।

आलसी लोड и उत्तरदायी ('srcset', 'आकार')।

वीडियो: HLS/DASH, तूफानों को कम करने के लिए खंडित MP4, मूल-ढाल (केंद्रीय कैश)।

लघुछवि सेवाओं और निजी छवियों के लिए URL पर हस्ताक्षर किए।

7) परिधि सुरक्षा

WAF: OWASP नियम, देश/ASN अवरोधक, कुंजी के साथ दर-सीमा (IP + कुकी + टोकन)।

DDoS: L3/4 स्क्रबिंग, L7 चेकर्स, JS चुनौतियां/टर्नस्टाइल।

निजी संसाधनों (वीडियो/रिपोर्ट) के लिए हस्ताक्षरित URL/कुकी: TTL + HMAC/EdDSA।

भू-बाड़लगाना और अनुपालन (उदाहरण के लिए, क्षेत्रों पर प्रतिबंध लगाना)।

8) एज-कंप्यूट (किनारे पर तर्क)

मामले:
  • कैश को तोड़ ने के बिना निजीकरण: खंड (ए/बी), भू, किनारे पर भाषा, और सामग्री को कैश किया जाता है।
  • जवाब/शीर्षक, पुनर्लेखन, पुनर्निर्देशन, एबी विभाजन।
  • टोकन-आधारित प्रमाणीकरण: JWT हस्ताक्षर सत्यापन, कुंजी बाध्यकारी।
  • कुकी/प्रतिशत द्वारा कैनरी: नए बैकेंड के लिए यातायात का हिस्सा।

प्रौद्योगिकी के उदाहरणों में क्लाउडफ्लेयर वर्कर्स/ड्यूरेबल ऑब्जेक्ट्स, फास्टली कम्प्यूट @ एज, AWS लैम्ब्डा @ एज शामिल हैं।

9) मल्टी-सीडीएन और वैश्विक परिधि

कारण: कवरेज, एसएलए, लागत, क्षेत्रीय प्रतिबंध, घटनाओं का अलगाव।

जीएसएलबी/ट्रैफिक स्टीयरिंग: जियो/लेटेंसी/वास्तविक त्रुटियों पर; कई सहूलियत बिंदुओं से स्वास्थ्य-जांच।

एकल कुंजी/शीर्षक योजना (सरोगेट-कुंजी), तुल्यकालित शुद्धिकरण नियम।

मूल-ढाल सभी सीडीएन के लिए आम है ताकि विकलांग के साथ "हिट" उत्पत्ति न हो।

10) लॉगिंग और मैट्रिक्स

संग्रह करें:
  • हिट अनुपात (कैश, सीडीएन → एज/ओरिजिन), बाइट हिट अनुपात।
  • लेटेंसी p50/p95/p99, कोड/रूट द्वारा त्रुटि-दर।
  • मूल लाभ: आरपीएस/बाइट्स/त्रुटियाँ (निरर्थक यादों के खिलाफ सुरक्षा)।
  • क्षेत्रीय चार्ट (POP/ASN/देश द्वारा)।
  • अवलोकन के साथ एकीकृत करें: प्रोमेथियस (निर्यातकों के माध्यम से पुल), ग्राफाना/ओटेल (किनारे लॉग से धक्का)।

11) SEO и SPA/SSR

SWR और लघु TTL के साथ SEO पृष्ठ तेज और ताजा हैं।

साइटमैप/रोबोट - हम लंबे समय तक कैश करते हैं, लेकिन सॉफ्ट-पर्ज की अनुमति देते हैं।

सेवा कार्यकर्ता: ऑफ़ लाइन कैशिंग, महत्वपूर्ण रास्तों का प्रीफेच, लक्षित अपडेट।

12) नमूना विन्यास और हेडर

12. 1 कैश-कंट्रोल प्रोफाइल

फिंगरप्रिंट के साथ स्थिर:

Cache-Control: public, max-age=31536000, immutable
एचटीएमएल/एसएसआर:

Cache-Control: public, max-age=60, s-maxage=600, stale-while-revalidate=60, stale-if-error=600
Surrogate-Control: max-age=600, stale-while-revalidate=120
एपीआई (कैश्ड स्टोरफ्रंट):

Cache-Control: public, s-maxage=60
Vary: Accept-Encoding

12. 2 NGINX (मूल) - क्वेरी/हेडर सामान्यीकरण

nginx map $arg_utm_source $utm_skip { default 1; "" 0; }
map $args $normalized_args {
default "";
"~(^    &)v=([a-z0-9]+)(&    $)" "v=$2";
}
proxy_cache_key "$scheme://$host$request_uri?$normalized_args";
add_header Surrogate-Key "product:{{id}} category:{{cat}}";

12. 3 तेजी से वीसीएल - सॉफ्ट-पर्ज और कुंजियाँ

vcl sub vcl_recv {
set req. hash += req. http. host req. url. path;
set req. hash += querystring. decode(req. url, "v,lang");
if (req. method == "PURGE") {
if (req. http. Fastly-Soft-Purge) { softpurge; } else { purge; }
return (synth(200, "purged"));
}
}
sub vcl_deliver {
set resp. http. Surrogate-Key = "product:42 category:food";
}

12. 4 क्लाउडफ्लेयर वर्कर्स - हस्ताक्षरित यूआरएल

js export default {
async fetch(req, env) {
const url = new URL(req. url);
if (url. pathname. startsWith("/private/")) {
const token = url. searchParams. get("token");
if (!token! verify(token, env. SIGNING_KEY)) return new Response("Forbidden", { status: 403 });
}
return fetch(req);
}
}

12. 5 लैम्ब्डा @ एज - जियो विकल्प

js exports. handler = async (event) => {
const req = event. Records[0].cf. request;
const country = req. headers['cloudfront-viewer-country']?.[0]?.value          'US';
if (country === 'DE') req. headers['accept-language'] = [{ key:'Accept-Language', value:'de' }];
return req;
};

13) निजी डेटा और एपीआई

कभी भी कुंजी अलगाव (प्रति-उपयोगकर्ता/प्रति-टोकन) के बिना निजी प्रतिक्रियाओं को कैश न करें।

हस्ताक्षरित कुकीज ़/हेडर और 'Vary: सख्त नियंत्रण के साथ प्राधिकरण का उपयोग करें (अन्यथा - कैश-बस्ट)।

सुरक्षित विकल्प: सार्वजनिक परत (कैश्ड) और निजी निष्कर्ष (ईएसआई/एज रचना) को अलग करें।

14) जियो/कंटेंट नियम

लाइसेंसिंग प्रतिबंध: मूल अवरुद्ध करने के बजाय किनारे पर भू-इनकार, प्लेसहोल्डर।

आयु/नियामक बैनर - किनारे पर रेंडर (पंच कैश न करें)।

15) एंटी-पैटर्न

'नो-कैश, नो-स्टोर' पूरी साइट - सीडीएन प्रभाव का नुकसान।

'Vary' on अस्थिर हेडर (उदाहरण के लिए, 'उपयोगकर्ता-एजेंट') → कार्डिनैलिटी।

प्रत्येक रिलीज पर पूरा कैश साफ करें।

SWR के बिना लघु TTL मूल में तूफान।

विभाजन/टोकन कुंजी के बिना व्यक्तिगत पृष्ठों को कैश किया जाता है।

मूल-ढाल की कमी - कई समानांतर यादें।

16) कार्यान्वयन चेकलिस्ट (0-45 दिन)

0-10 दिन

संसाधनों को वर्गीकृत करें: अपरिवर्तनीय/एचटीएमएल/एपीआई।

gzip/br, HTTP/2/3, क्वैरी सामान्यीकरण, 'सरोगेट कुंजी' सक्षम करें.

SWR/IFE और बेस पर्ज भरें।

11-25 दिन

किनारे-छवि अनुकूलन (आकार/प्रारूप), मूल-ढाल।

निजी मीडिया, WAF/DDoS प्रोफाइल के लिए हस्ताक्षरित URL।

डैशबोर्ड: हिट अनुपात, मूल लाभ, POP द्वारा p95।

26-45 दिन

मल्टी-सीडीएन या जीएसएलबी रणनीति, परिधि पर कैनरी वजन।

विभाजन/एबी/जियो के लिए एज-कंप्यूट, कुंजियों द्वारा सॉफ्ट-पर्ज।

सीआई/सीडी में ऑटो-वार्मिंग और शुद्ध एकीकरण।

17) परिपक्वता मैट्रिक्स

बाइट ने स्थिर के लिए अनुपात ≥ 85%, HTML/सशर्त गतिशीलता के लिए ≥ 60% मारा।

मूल आरपीएस चोटियों पर स्थिर (कोई "तूफान" नहीं)।

p95 TTFB प्रमुख क्षेत्रों में ≥ 30% तक कम हो गया।

घटनाओं के लिए बासी प्रतिक्रियाओं का%> 90% (उपयोगकर्ता मुश्किल से देखा गया)।

रिलीज पाइपलाइनों में शुद्ध कुंजियों का पूर्ण स्वचालन।

18) निष्कर्ष

प्रभावी सीडीएन सर्किट कुंजी/टीटीएल/विकल्प, विकलांगता अनुशासन और किनारे तर्क है। SWR/IFE, मूल-ढाल, मीडिया अनुकूलन और मजबूत सुरक्षा (WAF, हस्ताक्षरित URL) जोड़ें। मैट्रिक्स को मानकीकृत करें और पर्स को सीआई/सीडी में एकीकृत करें - और आपको एक तेज, किफायती और स्थिर परिधि मिलती है, जो पीक लोड और काले हंस के लिए तैयार होती है।

Contact

हमसे संपर्क करें

किसी भी प्रश्न या सहायता के लिए हमसे संपर्क करें।हम हमेशा मदद के लिए तैयार हैं!

Telegram
@Gamble_GC
इंटीग्रेशन शुरू करें

Email — अनिवार्य है। Telegram या WhatsApp — वैकल्पिक हैं।

आपका नाम वैकल्पिक
Email वैकल्पिक
विषय वैकल्पिक
संदेश वैकल्पिक
Telegram वैकल्पिक
@
अगर आप Telegram डालते हैं — तो हम Email के साथ-साथ वहीं भी जवाब देंगे।
WhatsApp वैकल्पिक
फॉर्मैट: देश कोड और नंबर (उदा. +91XXXXXXXXXX)।

बटन दबाकर आप अपने डेटा की प्रोसेसिंग के लिए सहमति देते हैं।