మీ CDNని నిర్మించడం మరియు కాన్ఫిగర్ చేయడం

కంటెంట్ డెలివరీ నెట్‌వర్క్‌లు (CDNలు) వెబ్‌సైట్‌లు మరియు అప్లికేషన్‌లలో ప్రధానంగా స్టాటిక్ ఎలిమెంట్‌ల లోడ్‌ను వేగవంతం చేయడానికి ఉపయోగించబడతాయి. వివిధ భౌగోళిక ప్రాంతాలలో ఉన్న CDN సర్వర్‌లలోని ఫైల్‌ల కాషింగ్ కారణంగా ఇది జరుగుతుంది. CDN ద్వారా డేటాను అభ్యర్థించడం ద్వారా, వినియోగదారు దానిని సమీప సర్వర్ నుండి స్వీకరిస్తారు.

అన్ని కంటెంట్ డెలివరీ నెట్‌వర్క్‌ల ఆపరేషన్ మరియు కార్యాచరణ సూత్రం దాదాపు ఒకే విధంగా ఉంటుంది. ఫైల్‌ను డౌన్‌లోడ్ చేయమని అభ్యర్థనను స్వీకరించిన తర్వాత, CDN సర్వర్ దానిని అసలు సర్వర్ నుండి ఒక సారి తీసుకుంటుంది మరియు దానిని వినియోగదారుకు ఇస్తుంది, అదే సమయంలో దానిని నిర్ణీత వ్యవధిలో కాష్ చేస్తుంది. అన్ని తదుపరి అభ్యర్థనలకు కాష్ నుండి సమాధానం ఇవ్వబడుతుంది. అన్ని CDNలు ఫైల్‌లను ప్రీలోడ్ చేయడానికి, కాష్‌ను క్లియర్ చేయడానికి, గడువు తేదీని సెట్ చేయడానికి మరియు మరిన్ని చేయడానికి ఎంపికలను కలిగి ఉంటాయి.

ఇది జరుగుతుంది, ఒక కారణం లేదా మరొక కారణంగా, మీరు మీ స్వంత కంటెంట్ డెలివరీ నెట్‌వర్క్‌ను నిర్వహించాలి, ఆపై - తదుపరి బైక్‌ను సమీకరించే సూచనలను మాకు సహాయం చేయనివ్వండి.

మీ CDNని నిర్మించడం మరియు కాన్ఫిగర్ చేయడం
మూలం: ఇన్ఫోగ్రాఫిక్ వెక్టర్ pikisuperstar ద్వారా సృష్టించబడింది - www.freepik.com

మీకు మీ స్వంత CDN అవసరమైనప్పుడు

మీ స్వంత CDNని అమలు చేయడం సమంజసమైన సందర్భాలను పరిగణించండి:

  • డబ్బు ఆదా చేయాలనే కోరిక ఉన్నప్పుడు మరియు చవకైన CDNలను ఉపయోగిస్తున్నప్పుడు కూడా నిర్వహణ ఖర్చులు బన్నీCDN నెలకు కొన్ని వందల డాలర్లు
  • మేము సర్వర్ మరియు ఛానెల్ పొరుగువారు లేకుండా శాశ్వత కాష్ లేదా కాష్‌ని పొందాలనుకుంటే
  • CDN సేవలు మీకు అవసరమైన ప్రాంతంలో ఉనికిని కలిగి ఉండవు
  • ఏదైనా ప్రత్యేక కంటెంట్ డెలివరీ సెట్టింగ్‌లు అవసరం
  • ఉత్పత్తి సర్వర్‌ను వినియోగదారులకు దగ్గరగా ఉంచడం ద్వారా డైనమిక్ కంటెంట్ డెలివరీని వేగవంతం చేయాలనుకుంటున్నాము
  • మూడవ పక్షం CDN సేవ చట్టవిరుద్ధంగా వినియోగదారు ప్రవర్తన (హలో నాన్-GDPR-అనుకూల సేవలు) గురించి సమాచారాన్ని సేకరించడం లేదా ఉపయోగించడం లేదా ఇతర చట్టవిరుద్ధ కార్యకలాపాలలో పాల్గొనడం ఆందోళన కలిగిస్తుంది

చాలా ఇతర సందర్భాల్లో, ఇప్పటికే ఉన్న రెడీమేడ్ పరిష్కారాలను ఉపయోగించడం మరింత సరైనది.

మీరు ఏమి ప్రారంభించాలి

మీరు మీ స్వంత అటానమస్ సిస్టమ్ (AS) కలిగి ఉంటే ఇది అద్భుతమైనది. దానితో, మీరు ఒకే IPని అనేక సర్వర్‌లకు కేటాయించవచ్చు మరియు ఈ సూచన ప్రకారం నెట్‌వర్క్ స్థాయిలో, వినియోగదారులను సమీపంలోని ఒకదానికి మళ్లించండి. /24 చిరునామా బ్లాక్‌తో కూడా, కంటెంట్ డెలివరీ నెట్‌వర్క్‌ను నిర్మించడం సాధ్యమవుతుందని చెప్పడం విలువ. కొంతమంది సర్వర్ ప్రొవైడర్లు వారికి అందుబాటులో ఉన్న అన్ని ప్రాంతాలలో ఉపయోగం కోసం ప్రకటన చేయడానికి మిమ్మల్ని అనుమతిస్తారు.

మీరు IP చిరునామాల బ్లాక్‌కి సంతోషకరమైన యజమాని కాకపోతే, సాధారణ CDNని అమలు చేయడానికి మీకు ఇది అవసరం:

  • డొమైన్ పేరు లేదా సబ్డొమైన్
  • వేర్వేరు ప్రాంతాల్లో కనీసం రెండు సర్వర్లు. సర్వర్ అంకితం లేదా వర్చువల్ కావచ్చు
  • geoDNS సాధనం. దానితో, వినియోగదారు, డొమైన్‌ను చిరునామా చేసిన తర్వాత, సమీప సర్వర్‌కు మళ్లించబడతారు

డొమైన్‌ను నమోదు చేసి సర్వర్‌లను ఆర్డర్ చేయండి

డొమైన్ నమోదుతో, ప్రతిదీ సులభం - మేము ఏదైనా రిజిస్ట్రార్‌తో ఏదైనా జోన్‌లో నమోదు చేస్తాము. మీరు CDN కోసం సబ్‌డొమైన్‌ను కూడా ఉపయోగించవచ్చు, ఉదాహరణకు cdn.domainname.com. వాస్తవానికి, మా ఉదాహరణలో, మేము అలా చేస్తాము.

సర్వర్‌లను ఆర్డర్ చేయడం కోసం, వాటిని మీ వినియోగదారు ప్రేక్షకులు ఉన్న ప్రాంతాలు మరియు దేశాలలో అద్దెకు తీసుకోవాలి. ప్రాజెక్ట్ ఖండాంతరంగా ఉంటే, ప్రపంచవ్యాప్తంగా ఒకేసారి సర్వర్‌లను అందించే హోస్టింగ్ ప్రొవైడర్‌లను ఎంచుకోవడం సౌకర్యంగా ఉంటుంది. ఉదాహరణలు: OVH, లీజువెబ్ и 100TB - అంకితమైన సర్వర్‌ల కోసం, Vultr и DigitalOcean — వర్చువల్ క్లౌడ్* కోసం.

మా ప్రైవేట్ CDN కోసం, మేము వివిధ ఖండాలలో 3 వర్చువల్ సర్వర్‌లను ఆర్డర్ చేస్తాము. వద్ద Vultr కోసం సర్వర్‌లో నెలకు $5 మేము పొందుతాము 25GB SSD స్థలాలు మరియు 1TB ట్రాఫిక్. ఇన్‌స్టాల్ చేస్తున్నప్పుడు, తాజా డెబియన్‌ని ఎంచుకోండి. మా సర్వర్లు:

మీ CDNని నిర్మించడం మరియు కాన్ఫిగర్ చేయడం ఫ్రాంక్ఫర్ట్, ip: 199.247.18.199

మీ CDNని నిర్మించడం మరియు కాన్ఫిగర్ చేయడం చికాగో, ip: 149.28.121.123

మీ CDNని నిర్మించడం మరియు కాన్ఫిగర్ చేయడం Сингапур, ip: 157.230.240.216

* Vultr మరియు DigitalOcean చెల్లింపు పద్ధతిని జోడించిన వెంటనే కథనంలోని లింక్‌ల ద్వారా నమోదు చేసుకున్న వినియోగదారులకు $100 క్రెడిట్‌ను వాగ్దానం చేస్తుంది. రచయిత దీని నుండి ఒక చిన్న అభినందనను కూడా అందుకుంటాడు, ఇది ఇప్పుడు అతనికి చాలా ముఖ్యమైనది. దయచేసి అర్థం చేసుకోండి.

geoDNSని సెటప్ చేస్తోంది

డొమైన్ లేదా CDN సబ్‌డొమైన్‌ను యాక్సెస్ చేస్తున్నప్పుడు వినియోగదారు కోరుకున్న (దగ్గరగా ఉన్న) సర్వర్‌కి మళ్లించబడాలంటే, మాకు జియోడిఎన్ఎస్ ఫంక్షన్‌తో కూడిన డిఎన్ఎస్ సర్వర్ అవసరం.

జియోడిఎన్ఎస్ సూత్రం మరియు ఆపరేషన్ క్రింది విధంగా ఉంది:

  1. DNS అభ్యర్థనను పంపిన క్లయింట్ యొక్క IPని లేదా క్లయింట్ అభ్యర్థనను ప్రాసెస్ చేస్తున్నప్పుడు ఉపయోగించబడే పునరావృత DNS సర్వర్ యొక్క IPని పేర్కొంటుంది. ఇటువంటి పునరావృత సర్వర్లు సాధారణంగా ప్రొవైడర్ల DNS-లు.
  2. క్లయింట్ యొక్క IP అతని దేశం లేదా ప్రాంతాన్ని గుర్తిస్తుంది. దీని కోసం, జియోఐపి డేటాబేస్‌లు ఉపయోగించబడతాయి, వీటిలో ఈ రోజు చాలా ఉన్నాయి. మంచి ఉన్నాయి ఉచిత ఎంపికలు.
  3. క్లయింట్ యొక్క స్థానాన్ని బట్టి, అతనికి సమీప CDN సర్వర్ యొక్క IP చిరునామాను ఇస్తుంది.

జియోడిఎన్ఎస్ ఫంక్షన్‌తో డిఎన్ఎస్ సర్వర్ కావచ్చు మీరే సమీకరించండి, కానీ ప్రపంచవ్యాప్తంగా ఉన్న DNS సర్వర్‌ల నెట్‌వర్క్‌తో రెడీమేడ్ సొల్యూషన్‌లను ఉపయోగించడం మంచిది ఏదైనా పెట్టె నుండి:

  • CloudDNS от నెలకు $9.95, GeoDNS టారిఫ్, డిఫాల్ట్‌గా ఒక DNS ఫెయిల్‌ఓవర్ ఉంది
  • జిలోర్ от నెలకు $25, DNS ఫెయిల్‌ఓవర్ ప్రారంభించబడింది
  • అమెజాన్ రూట్ 53 от నెలకు $35 నికర 50M భౌగోళిక అభ్యర్థనల కోసం. DNS ఫెయిల్‌ఓవర్ విడిగా బిల్ చేయబడుతుంది
  • DNS మేడ్ ఈజీ от నెలకు $125, 10 DNS ఫెయిల్‌ఓవర్‌లు ఉన్నాయి
  • cloudflare, ఎంటర్‌ప్రైజ్ ప్లాన్‌లలో "జియో స్టీరింగ్" ఫీచర్ అందుబాటులో ఉంది

geoDNSని ఆర్డర్ చేస్తున్నప్పుడు, మీరు టారిఫ్‌లో చేర్చబడిన అభ్యర్థనల సంఖ్యకు శ్రద్ధ వహించాలి మరియు డొమైన్‌కు అభ్యర్థనల వాస్తవ సంఖ్య అనేక రెట్లు అంచనాలను అధిగమించవచ్చని గుర్తుంచుకోండి. లక్షలాది సాలీడులు, స్కానర్లు, స్పామర్లు మరియు ఇతర దుష్ట ఆత్మలు అవిశ్రాంతంగా పనిచేస్తాయి.

దాదాపు అన్ని DNS సేవలు CDN - DNS ఫెయిల్‌ఓవర్‌ని నిర్మించడానికి ఒక అనివార్యమైన సేవను కలిగి ఉంటాయి. దాని సహాయంతో, మీరు మీ సర్వర్‌ల ఆపరేషన్‌ను పర్యవేక్షించడాన్ని సెటప్ చేయవచ్చు మరియు జీవిత సంకేతాలు లేనప్పుడు, పని చేయని సర్వర్ చిరునామాను స్వయంచాలకంగా DNS ప్రతిస్పందనలలో బ్యాకప్‌తో భర్తీ చేయవచ్చు.

మా CDNని నిర్మించడానికి, మేము ఉపయోగిస్తాము CloudDNS, GeoDNS టారిఫ్.

మీ డొమైన్‌ను పేర్కొంటూ మీ వ్యక్తిగత ఖాతాలో కొత్త DNS జోన్‌ని జోడిద్దాం. మేము సబ్‌డొమైన్‌లో CDNని రూపొందిస్తున్నట్లయితే మరియు ప్రధాన డొమైన్ ఇప్పటికే ఉపయోగంలో ఉంటే, జోన్‌ను జోడించిన వెంటనే, ఇప్పటికే పని చేస్తున్న DNS రికార్డులను జోడించడం మర్చిపోవద్దు. CDN డొమైన్ / సబ్‌డొమైన్ కోసం అనేక A-రికార్డ్‌లను సృష్టించడం తదుపరి దశ, వీటిలో ప్రతి ఒక్కటి మేము పేర్కొన్న ప్రాంతానికి వర్తించబడుతుంది. మీరు ఖండాలు లేదా దేశాలను ప్రాంతాలుగా పేర్కొనవచ్చు, USA మరియు కెనడా కోసం ఉప-ప్రాంతాలు అందుబాటులో ఉన్నాయి.

మా విషయంలో, CDN సబ్‌డొమైన్‌లో పెంచబడుతుంది cdn.sayt.in. జోన్‌ని జోడించడం ద్వారా sayt.in, సబ్‌డొమైన్‌కు మొదటి A-రికార్డ్‌ని సృష్టించి, ఉత్తర అమెరికా మొత్తాన్ని చికాగోలోని సర్వర్‌కు సూచించండి:

మీ CDNని నిర్మించడం మరియు కాన్ఫిగర్ చేయడం
డిఫాల్ట్ ప్రాంతాల కోసం ఒక ఎంట్రీని సృష్టించాలని గుర్తుంచుకోండి, ఇతర ప్రాంతాల కోసం చర్యను పునరావృతం చేద్దాం. చివరికి ఏమి జరుగుతుందో ఇక్కడ ఉంది:

మీ CDNని నిర్మించడం మరియు కాన్ఫిగర్ చేయడం

స్క్రీన్‌షాట్‌లోని చివరి డిఫాల్ట్ నమోదు అంటే అన్ని పేర్కొనబడని ప్రాంతాలు (మరియు ఇవి యూరప్, ఆఫ్రికా, ఉపగ్రహ ఇంటర్నెట్ వినియోగదారులు మొదలైనవి) ఫ్రాంక్‌ఫర్ట్‌లోని సర్వర్‌కు పంపబడతాయి.

ఇది ప్రాథమిక DNS సెటప్‌ను పూర్తి చేస్తుంది. డొమైన్ రిజిస్ట్రార్ వెబ్‌సైట్‌కి వెళ్లి, ప్రస్తుత డొమైన్ NSలను CloudDNS జారీ చేసిన వాటితో భర్తీ చేయడానికి ఇది మిగిలి ఉంది. మరియు NSలు నవీకరించబడినప్పుడు, మేము సర్వర్‌లను సిద్ధం చేస్తాము.

SSL ప్రమాణపత్రాల సంస్థాపన

మా CDN HTTPS ద్వారా పని చేస్తుంది, కాబట్టి మీరు ఇప్పటికే డొమైన్ లేదా సబ్‌డొమైన్ కోసం SSL ప్రమాణపత్రాలను కలిగి ఉంటే, వాటిని అన్ని సర్వర్‌లకు అప్‌లోడ్ చేయండి, ఉదాహరణకు, డైరెక్టరీకి /etc/ssl/yourdomain/

సర్టిఫికెట్లు లేకుంటే, మీరు లెట్స్ ఎన్‌క్రిప్ట్ నుండి ఉచితంగా పొందవచ్చు. దీని కోసం పర్ఫెక్ట్ ACME షెల్‌స్క్రిప్ట్. క్లయింట్ అనుకూలమైనది మరియు సెటప్ చేయడం సులభం, మరియు ముఖ్యంగా, క్లౌడ్‌ఎన్ఎస్ API ద్వారా DNS ద్వారా డొమైన్/సబ్‌డొమైన్‌ను ధృవీకరించడానికి ఇది మిమ్మల్ని అనుమతిస్తుంది.

మేము సర్వర్‌లలో ఒకదానిలో మాత్రమే acme.shని ఇన్‌స్టాల్ చేస్తాము - యూరోపియన్ 199.247.18.199, దాని నుండి సర్టిఫికేట్లు అన్ని ఇతర వాటికి కాపీ చేయబడతాయి. ఇన్‌స్టాల్ చేయడానికి, అమలు చేయండి:

root@cdn:~# wget -O - https://get.acme.sh | bash; source ~/.bashrc

స్క్రిప్ట్ యొక్క ఇన్‌స్టాలేషన్ సమయంలో, మా భాగస్వామ్యం లేకుండానే సర్టిఫికెట్‌ల తదుపరి పునరుద్ధరణ కోసం CRON ఉద్యోగం సృష్టించబడుతుంది.

ప్రమాణపత్రాన్ని జారీ చేస్తున్నప్పుడు, డొమైన్ APIని ఉపయోగించి DNS ద్వారా తనిఖీ చేయబడుతుంది, కాబట్టి పునఃవిక్రేత API మెనులోని CloudDNS వ్యక్తిగత ఖాతాలో, మీరు కొత్త వినియోగదారు APIని సృష్టించి, దాని కోసం పాస్‌వర్డ్‌ను సెట్ చేయాలి. పాస్‌వర్డ్‌తో ఫలితంగా వచ్చే auth-id ఫైల్‌లో వ్రాయబడుతుంది ~/.acme.sh/dnsapi/dns_cloudns.sh (ఫైల్‌తో గందరగోళం చెందకూడదు dns_clouddns.sh) వ్యాఖ్యానించని మరియు సవరించాల్సిన పంక్తులు ఇక్కడ ఉన్నాయి:

CLOUDNS_AUTH_ID=<auth-id>
CLOUDNS_AUTH_PASSWORD="<пароль>"

ఇప్పుడు మేము SSL ప్రమాణపత్రాన్ని అభ్యర్థిస్తాము cdn.sayt.in

root@cdn:~# acme.sh --issue --dns dns_cloudns -d cdn.sayt.in --reloadcmd "service nginx reload"

ఎంపికలలో, భవిష్యత్తు కోసం, భవిష్యత్తులో సర్టిఫికేట్ చెల్లుబాటు వ్యవధి యొక్క ప్రతి పునరుద్ధరణ తర్వాత వెబ్ సర్వర్ కాన్ఫిగరేషన్‌ను స్వయంచాలకంగా రీలోడ్ చేయడానికి మేము ఆదేశాన్ని పేర్కొన్నాము.

సర్టిఫికేట్ పొందే మొత్తం ప్రక్రియ 2 నిమిషాల వరకు పట్టవచ్చు, దానికి అంతరాయం కలిగించవద్దు. డొమైన్ ధ్రువీకరణ లోపం సంభవించినట్లయితే, ఆదేశాన్ని మళ్లీ అమలు చేయడానికి ప్రయత్నించండి. చివర్లో సర్టిఫికేట్లు ఎక్కడ అప్‌లోడ్ చేయబడిందో చూద్దాం:

మీ CDNని నిర్మించడం మరియు కాన్ఫిగర్ చేయడం

ఈ మార్గాలను గుర్తుంచుకోండి, సర్టిఫికేట్‌ను ఇతర సర్వర్‌లకు, అలాగే వెబ్ సర్వర్ సెట్టింగ్‌లలో కాపీ చేసేటప్పుడు అవి పేర్కొనబడాలి. మేము Nginx కాన్ఫిగరేషన్‌లను రీలోడ్ చేయడంలో దోషానికి శ్రద్ధ చూపము - సర్టిఫికేట్‌లను నవీకరించేటప్పుడు ఇది పూర్తిగా కాన్ఫిగర్ చేయబడిన సర్వర్‌లో ఉండదు.

SSL కోసం మనకు మిగిలి ఉన్నది ఫైల్‌లకు మార్గాన్ని కొనసాగిస్తూ, అందుకున్న సర్టిఫికేట్‌ను మరో రెండు సర్వర్‌లకు కాపీ చేయడం. వాటిలో ప్రతిదానిపై ఒకే డైరెక్టరీలను సృష్టించి, కాపీని తయారు చేద్దాం:

root@cdn:~# mkdir -p /root/.acme.sh/cdn.sayt.in/
root@cdn:~# scp -r [email protected]:/root/.acme.sh/cdn.sayt.in/* /root/.acme.sh/cdn.sayt.in/

క్రమం తప్పకుండా సర్టిఫికేట్‌లను అప్‌డేట్ చేయడానికి, ఆదేశంతో రెండు సర్వర్‌లలో రోజువారీ CRON ఉద్యోగాన్ని సృష్టించండి:

scp -r [email protected]:/root/.acme.sh/cdn.sayt.in/* /root/.acme.sh/cdn.sayt.in/ && service nginx reload

ఈ సందర్భంలో, రిమోట్ సోర్స్ సర్వర్‌కు యాక్సెస్ తప్పనిసరిగా కాన్ఫిగర్ చేయబడాలి కీ ద్వారా, అనగా పాస్వర్డ్ను నమోదు చేయకుండా. దీన్ని చేయడం మర్చిపోవద్దు.

Nginxని ఇన్‌స్టాల్ చేయడం మరియు కాన్ఫిగర్ చేయడం

స్టాటిక్ కంటెంట్‌ను అందించడానికి, మేము కాషింగ్ ప్రాక్సీ సర్వర్‌గా కాన్ఫిగర్ చేసిన Nginxని ఉపయోగిస్తాము. ప్యాకేజీ జాబితాలను నవీకరించండి మరియు దానిని మూడు సర్వర్‌లలో ఇన్‌స్టాల్ చేయండి:

root@cdn:~# apt update
root@cdn:~# apt install nginx

డిఫాల్ట్‌కు బదులుగా, మేము దిగువ స్పాయిలర్ నుండి కాన్ఫిగర్‌ని ఉపయోగిస్తాము:
nginx.conf

user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
    worker_connections 4096;
    multi_accept on;
}

http {
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    types_hash_max_size 2048;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    access_log off;
    error_log /var/log/nginx/error.log;

    gzip on;
    gzip_disable "msie6";
    gzip_comp_level 6;
    gzip_proxied any;
    gzip_vary on;
    gzip_types text/plain application/javascript text/javascript text/css application/json application/xml text/xml application/rss+xml;
    gunzip on;            

    proxy_temp_path    /var/cache/tmp;
    proxy_cache_path   /var/cache/cdn levels=1:2 keys_zone=cdn:64m max_size=20g inactive=7d;
    proxy_cache_bypass $http_x_update;

server {
  listen 443 ssl;
  server_name cdn.sayt.in;

  ssl_certificate /root/.acme.sh/cdn.sayt.in/cdn.sayt.in.cer;
  ssl_certificate_key /root/.acme.sh/cdn.sayt.in/cdn.sayt.in.key;

  location / {
    proxy_cache cdn;
    proxy_cache_key $uri$is_args$args;
    proxy_cache_valid 90d;
    proxy_pass https://sayt.in;
    }
  }
}

కాన్ఫిగరేషన్‌లో సవరించండి:

  • గరిష్ట_పరిమాణం - కాష్ పరిమాణం, అందుబాటులో ఉన్న డిస్క్ స్థలాన్ని మించకూడదు
  • క్రియారహితంగా - ఎవరూ యాక్సెస్ చేయని కాష్ చేసిన డేటా నిల్వ సమయం
  • ssl_సర్టిఫికేట్ и ssl_certificate_key — SSL ప్రమాణపత్రం మరియు కీ ఫైళ్లకు మార్గాలు
  • ప్రాక్సీ_కాష్_చెల్లుబాటు - కాష్ చేసిన డేటా నిల్వ సమయం
  • ప్రాక్సీ_పాస్ — CDN కాషింగ్ కోసం ఫైల్‌లను అభ్యర్థించే అసలు సర్వర్ చిరునామా. మా ఉదాహరణలో, ఇది sayt.in

మీరు గమనిస్తే, ప్రతిదీ సులభం. డైరెక్టివ్‌ల సారూప్యత కారణంగా కాషింగ్ సమయాన్ని సెట్ చేయడంలో మాత్రమే ఇబ్బందులు తలెత్తుతాయి క్రియారహితంగా и ప్రాక్సీ_కాష్_చెల్లుబాటు. వాటిని మన ఉదాహరణతో విశ్లేషిద్దాం. ఎప్పుడు ఏమి జరుగుతుందో ఇక్కడ ఉంది నిష్క్రియం=7డి и proxy_cache_valid 90d:

  • అభ్యర్థన 7 రోజులలోపు పునరావృతం కాకపోతే, ఈ వ్యవధి తర్వాత డేటా కాష్ నుండి తొలగించబడుతుంది
  • అభ్యర్థన కనీసం ప్రతి 7 రోజులకు ఒకసారి పునరావృతమైతే, కాష్‌లోని డేటా 90 రోజుల తర్వాత పాతదిగా పరిగణించబడుతుంది మరియు తదుపరి అభ్యర్థనతో Nginx దానిని అసలు సర్వర్ నుండి తీసుకుంటుంది.

సవరించడం పూర్తయింది nginx.conf, కాన్ఫిగరేషన్‌ను మళ్లీ లోడ్ చేయండి:

root@cdn:~# service nginx reload

మా CDN సిద్ధంగా ఉంది. నెలకు $15కి. మేము మూడు ఖండాలలో ఉనికిని పొందాము మరియు 3 TB ట్రాఫిక్: ప్రతి ప్రదేశంలో 1 TB.

CDN పనిని తనిఖీ చేస్తోంది

వివిధ భౌగోళిక స్థానాల నుండి మన CDNకి పింగ్‌లను చూద్దాం. ఏదైనా పింగ్ సేవ దీని కోసం పని చేస్తుంది.

లాంచ్ పాయింట్
హోస్ట్
IP
సగటు సమయం, ms

జర్మనీ బెర్లిన్
cdn.sayt.in
199.247.18.199
9.6

నెదర్లాండ్స్, ఆమ్స్టర్డామ్
cdn.sayt.in
199.247.18.199
10.1

ఫ్రాన్స్ పారిస్
cdn.sayt.in
199.247.18.199
16.3

యునైటెడ్ కింగ్‌డమ్, లండన్
cdn.sayt.in
199.247.18.199
14.9

కెనడా, టొరంటో
cdn.sayt.in
149.28.121.123
16.2

USA, శాన్ ఫ్రాన్సిస్కో
cdn.sayt.in
149.28.121.123
52.7

USA, డల్లాస్
cdn.sayt.in
149.28.121.123
23.1

USA, చికాగో
cdn.sayt.in
149.28.121.123
2.6

USA, న్యూయార్క్
cdn.sayt.in
149.28.121.123
19.8

Сингапур
cdn.sayt.in
157.230.240.216
1.7

జపాన్ టోక్యో
cdn.sayt.in
157.230.240.216
74.8

ఆస్ట్రేలియా, సిడ్నీ
cdn.sayt.in
157.230.240.216
95.9

ఫలితాలు బాగున్నాయి. ఇప్పుడు మేము ప్రధాన సైట్ యొక్క రూట్‌లో పరీక్ష చిత్రాన్ని ఉంచుతాము test.jpg మరియు CDN ద్వారా దాని డౌన్‌లోడ్ వేగాన్ని తనిఖీ చేయండి. అది చెప్పబడినది - పూర్తి. కంటెంట్ త్వరగా పంపిణీ చేయబడుతుంది.

CDN పాయింట్‌పై కాష్‌ని క్లియర్ చేయాలనుకుంటే చిన్న స్క్రిప్ట్‌ను వ్రాస్దాం.
purge.sh

#!/bin/bash
if [ -z "$1" ]
then
    echo "Purging all cache"
    rm -rf /var/cache/cdn/*
else
    echo "Purging $1"
    FILE=`echo -n "$1" | md5sum | awk '{print $1}'`
    FULLPATH=/var/cache/cdn/${FILE:31:1}/${FILE:29:2}/${FILE}
    rm -f "${FULLPATH}"
fi

మొత్తం కాష్‌ను తొలగించడానికి, దాన్ని అమలు చేయండి, ప్రత్యేక ఫైల్‌ను ఇలా శుభ్రం చేయవచ్చు:

root@cdn:~# ./purge.sh /test.jpg

తీర్మానాలకు బదులుగా

చివరగా, ఒకసారి నా తలకు గాయం చేసిన రేక్‌పై వెంటనే అడుగు పెట్టడానికి నేను కొన్ని ఉపయోగకరమైన చిట్కాలను ఇవ్వాలనుకుంటున్నాను:

  • CDN యొక్క తప్పు సహనాన్ని పెంచడానికి, DNS ఫెయిల్‌ఓవర్‌ని కాన్ఫిగర్ చేయమని సిఫార్సు చేయబడింది, ఇది సర్వర్ విచ్ఛిన్నం అయినప్పుడు A రికార్డ్‌ను త్వరగా మార్చడానికి సహాయపడుతుంది. ఇది డొమైన్ నియంత్రణ ప్యానెల్ DNS రికార్డులలో జరుగుతుంది.
  • విస్తృత భౌగోళిక కవరేజీని కలిగి ఉన్న సైట్‌లకు పెద్ద సంఖ్యలో CDNలు అవసరమవుతాయి, అయితే మనం మతోన్మాదంగా ఉండకూడదు. యూరోప్, ఉత్తర అమెరికా (తూర్పు), ఉత్తర అమెరికా (పశ్చిమ), సింగపూర్, ఆస్ట్రేలియా, హాంకాంగ్ లేదా జపాన్: మీరు 6-7 స్థానాల్లో సర్వర్‌లను ఉంచినట్లయితే చెల్లింపు CDNతో పోలిస్తే వినియోగదారు గణనీయమైన వ్యత్యాసాన్ని గమనించలేరు.
  • కొన్నిసార్లు హోస్టర్లు CDN ప్రయోజనాల కోసం అద్దెకు తీసుకున్న సర్వర్‌ల వినియోగాన్ని అనుమతించరు. అందువల్ల, మీరు అకస్మాత్తుగా కంటెంట్ డెలివరీ నెట్‌వర్క్‌ను సేవగా అమలు చేయాలని నిర్ణయించుకుంటే, నిర్దిష్ట హోస్టింగ్ ప్రొవైడర్ యొక్క నియమాలను ముందుగానే చదవడం మర్చిపోవద్దు
  • అన్వేషించండి నీటి అడుగున కమ్యూనికేషన్ మ్యాప్ఖండాలు ఎలా కనెక్ట్ అయ్యాయో సూచించడానికి మరియు కంటెంట్ డెలివరీ నెట్‌వర్క్‌ను నిర్మించేటప్పుడు దీన్ని పరిగణనలోకి తీసుకోండి
  • తనిఖీ చేయడానికి ప్రయత్నించండి వివిధ ప్రదేశాల నుండి పింగ్స్ మీ సర్వర్‌లకు. ఈ విధంగా మీరు CDN పాయింట్‌లకు దగ్గరగా ఉన్న ప్రాంతాలను చూడవచ్చు మరియు GeoDNSని మరింత సరిగ్గా కాన్ఫిగర్ చేయవచ్చు
  • టాస్క్‌లపై ఆధారపడి, నిర్దిష్ట కాషింగ్ అవసరాల కోసం మరియు సర్వర్‌లోని లోడ్‌ను పరిగణనలోకి తీసుకోవడం కోసం Nginxని చక్కగా ట్యూన్ చేయడం ఉపయోగకరంగా ఉంటుంది. Nginx కాష్ గురించిన కథనాలు ఇందులో నాకు చాలా సహాయపడ్డాయి - ఇక్కడ మరియు అధిక భారం కింద పనిని వేగవంతం చేయడం: ఇక్కడ и ఇక్కడ

మూలం: www.habr.com