Netwerks ta 'konsenja tal-kontenut (CDNs) jintużaw minn websajts u applikazzjonijiet primarjament biex iħaffu t-tagħbija ta' elementi statiċi. Dan jiġri billi fajls fil-caching fuq servers CDN li jinsabu f'reġjuni ġeografiċi differenti. Billi jitlob dejta permezz tas-CDN, l-utent jirċieviha mill-eqreb server.
Il-prinċipju operattiv u l-funzjonalità tan-netwerks kollha tal-kunsinna tal-kontenut huwa bejn wieħed u ieħor l-istess. Wara li rċieva talba biex tniżżel fajl, is-server tas-CDN jeħodha ta' darba mis-server oriġinali u jagħtiha lill-utent, fl-istess ħin idaħħalha fil-cache għal perjodu ta' żmien speċifikat. It-talbiet kollha sussegwenti jiġu mwieġba mill-cache. Is-CDNs kollha għandhom għażliet għat-tagħbija minn qabel tal-fajls, l-ikklerjar tal-cache, l-issettjar tal-iskadenza tal-cache, u ħafna aktar.
Jiġri li għal xi raġuni jew oħra huwa meħtieġ li torganizza n-netwerk tal-kunsinna tal-kontenut tiegħek stess, u mbagħad - jista 'l-istruzzjonijiet għall-assemblaġġ tar-rota li jmiss ikunu ta' għajnuna għalina.
Ejja nħarsu lejn każijiet fejn it-tħaddim tas-CDN tiegħek jagħmel sens:
meta trid tiffranka l-flus, u l-ispejjeż operattivi anke meta tuża CDNs rħas bħal BunnyCDN jammonta għal diversi mijiet ta’ dollari fix-xahar
jekk irridu nġibu cache permanenti jew cache mingħajr ġirien fuq is-server u l-kanal
Is-servizzi tas-CDN m'għandhomx punti ta' preżenza fir-reġjun li għandek bżonn
Kwalunkwe settings speċjali tal-kunsinna tal-kontenut huma meħtieġa
irridu nħaffu l-kunsinna ta 'kontenut dinamiku billi nqiegħdu servers ta' produzzjoni eqreb lejn l-utenti
hemm tħassib li servizz CDN ta’ parti terza jista’ jiġbor jew juża b’mod mhux xieraq informazzjoni dwar l-imġiba tal-utent (bonjour lil servizzi mhux konformi mal-GDPR) jew jidħol f’attivitajiet illegali oħra
Fil-biċċa l-kbira tal-każijiet l-oħra, huwa aktar xieraq li jintużaw soluzzjonijiet eżistenti lesti.
Dak li għandek bżonn biex tibda
Hija isbaħ jekk għandek is-sistema awtonoma tiegħek (AS). Biha tista 'tassenja l-istess IP lil diversi servers u skond dawn l-istruzzjonijiet fil-livell tan-netwerk, jidderieġi lill-utenti lejn l-eqreb wieħed. Ta 'min jgħid li anke bi blokk ta' indirizzi /24 huwa possibbli li tinbena netwerk ta 'kunsinna ta' kontenut. Xi fornituri tas-server jippermettulek tirreklama għall-użu fir-reġjuni kollha disponibbli għalihom.
Jekk m'intix is-sid xortik tajba ta' blokk ta' indirizzi IP, allura biex tniedi CDN sempliċi ser ikollok bżonn:
isem tad-dominju jew sottodominju
mill-inqas żewġ servers f'reġjuni differenti. Is-server jista 'jkun jew iddedikat jew virtwali
għodda geoDNS. Bl-għajnuna tiegħu, utent li jaċċessa dominju jiġi dirett lejn l-eqreb server
Irreġistra dominju u tordna servers
Bir-reġistrazzjoni tad-dominju, kollox huwa sempliċi - nirreġistraw fi kwalunkwe żona ma 'kwalunkwe reġistratur. Tista 'wkoll tuża subdomain għas-CDN, pereżempju xi ħaġa simili cdn.domainname.com. Fil-fatt, fl-eżempju tagħna aħna se nagħmlu dan.
Fir-rigward tal-ordnijiet tas-servers, dawn għandhom jinkrew fir-reġjuni u l-pajjiżi fejn tinsab l-udjenza tal-utent tiegħek. Jekk il-proġett huwa interkontinentali, allura huwa konvenjenti li tagħżel fornituri ta 'hosting li joffru servers madwar id-dinja kollha. Eżempji: OVH, kiri web и 100TB - għal servers dedikati, Vultr и DigitalOcean — għal sħaba virtwali*.
Għas-CDN privat tagħna, aħna se tordna 3 servers virtwali fuq kontinenti differenti. U Vultr fuq is-server għal $ 5/xahar aħna se tikseb 25GB SSD postijiet u 1TB traffiku. Waqt l-installazzjoni, aħna se nagħżlu l-aħħar Debian. Is-servers tagħna:
Frankfurt, ip: 199.247.18.199
Chicago, ip: 149.28.121.123
Singapor, ip: 157.230.240.216
*Vultr u DigitalOcean qed iwiegħdu $100 fi kreditu lill-utenti li jiffirmaw billi jużaw il-links f'dan l-artikolu ladarba jżidu metodu ta 'ħlas. L-awtur jirċievi wkoll kumpliment żgħir minn dan, li huwa sinifikanti ħafna għalih issa. Jekk jogħġbok kun fehim.
Twaqqif ta' geoDNS
Biex jiġi żgurat li meta utent jaċċessa dominju jew sottodominju CDN, huwa dirett lejn is-server mixtieq (l-eqreb), ikollna bżonn server DNS bil-funzjoni geoDNS.
Il-prinċipju u l-proċedura operattiva tal-geoDNS huma kif ġej:
Jiddefinixxi l-IP tal-klijent li bagħat it-talba DNS, jew l-IP tas-server DNS rikorsiv li jintuża meta tiġi pproċessata t-talba tal-klijent. Dawn is-servers rikorsivi huma normalment fornituri tad-DNS.
L-IP tal-klijent jidentifika l-pajjiż jew ir-reġjun tiegħu. Għal dan, jintużaw databases GeoIP, li llum hemm ħafna minnhom. Hemm xi wħud tajbin għażliet ħielsa.
Skont il-post tal-klijent, jagħtih l-indirizz IP tal-eqreb server CDN.
Server DNS b'funzjoni geoDNS jista 'jkun immunta minnek innifsek, iżda huwa aħjar li tuża soluzzjonijiet lesti ma 'netwerk ta' servers DNS madwar id-dinja u Anycast mill-kaxxa:
CloudDNS minn $ 9.95/xahar, Tariffa GeoDNS, b'mod awtomatiku hemm Failover DNS wieħed
Cloudflare, il-funzjoni "Geo Steering" hija disponibbli fit-tariffi tal-Intrapriża
Meta tordna geoDNS, għandek tagħti attenzjoni għan-numru ta 'talbiet inklużi fit-tariffa u tqis li n-numru attwali ta' talbiet għad-dominju jista 'jkun ħafna drabi ogħla milli mistenni. Miljuni ta 'brimb, skaners, spammers u spirti ħżiena oħra jaħdmu bla heda.
Kważi s-servizzi DNS kollha jinkludu fil-prezz servizz indispensabbli għall-bini ta' CDN - DNS Failover. Bl-għajnuna tagħha, tista 'twaqqaf monitoraġġ tal-operat tas-servers tiegħek u, jekk ma jkunx hemm sinjali ta' ħajja, tissostitwixxi awtomatikament l-indirizz tas-server li ma jaħdimx fit-tweġibiet DNS b'wieħed backup.
Biex nibnu CDN tagħna se nużaw CloudDNS, Tariffa GeoDNS.
Ejja nżidu żona DNS ġdida fil-kont personali tiegħek, li tindika d-dominju tiegħek. Jekk qed nibnu CDN fuq sottodominju, u d-dominju prinċipali diġà qed jintuża, imbagħad immedjatament wara li żżid iż-żona, tinsiex iżżid ir-rekords eżistenti tad-DNS tax-xogħol. Il-pass li jmiss huwa li toħloq diversi rekords A għad-dominju/subdominju CDN, li kull wieħed minnhom se jintuża għar-reġjun li speċifikajna. Tista' tispeċifika kontinenti jew pajjiżi bħala reġjuni; is-sottoreġjuni huma disponibbli għall-Istati Uniti u l-Kanada.
Fil-każ tagħna, is-CDN se titqajjem fuq sottodominju cdn.sayt.in. Billi żżid żona sayt.in, ejja noħolqu l-ewwel rekord A għas-sottodominju u nidderieġu l-Amerika ta’ Fuq kollha lejn is-server f’Chicago:
Ejja nirrepetu l-azzjoni għal reġjuni oħra, mingħajr ma ninsew li noħolqu dħul wieħed għar-reġjuni default. Hawn dak li tikseb fl-aħħar:
L-aħħar dħul default fil-screenshot tfisser li r-reġjuni kollha mhux speċifikati (u dawn huma l-Ewropa, l-Afrika, utenti tal-Internet bis-satellita, eċċ.) Se jintbagħtu lis-server fi Frankfurt.
Dan itemm is-setup bażiku tad-DNS. Li jibqa 'huwa li tmur fil-websajt tar-reġistratur tad-dominju u tissostitwixxi l-NSs tad-dominju attwali ma' dawk maħruġa minn ClouDNS. U filwaqt li l-NSs qed jiġu aġġornati, aħna se nippreparaw is-servers.
Installazzjoni ta' ċertifikati SSL
Is-CDN tagħna se jaħdem fuq HTTPS, għalhekk jekk diġà għandek ċertifikati SSL għal dominju jew sottodominju, ittellahom fuq is-servers kollha, pereżempju fid-direttorju /etc/ssl/dominju tiegħek/
Jekk m'għandekx ċertifikati, tista' tikseb wieħed b'xejn minn Let's Encrypt. Perfetta għal dan ACME Shell script. Il-klijent huwa konvenjenti u faċli biex jiġi kkonfigurat, u l-aktar importanti, jippermettilek tivvalida dominju/sottodominju billi tuża DNS permezz tal-API minn ClouDNS.
Aħna se ninstallaw acme.sh fuq wieħed biss mis-servers - Ewropew 199.247.18.199, li minnu ċ-ċertifikati jiġu kkupjati lill-oħrajn kollha. Biex tinstalla, agħmel:
Waqt l-installazzjoni tal-iskript, se jinħoloq kompitu CRON għal aktar aġġornament taċ-ċertifikati mingħajr il-parteċipazzjoni tagħna.
Il-verifika tad-dominju meta jinħareġ ċertifikat titwettaq permezz tad-DNS bl-użu tal-API, għalhekk fil-kont personali tiegħek ClouDNS fil-menu tal-API Reseller trid toħloq utent ġdid tal-API u ssettjaha password. Aħna se niktbu l-auth-id li tirriżulta bil-password f'fajl ~/.acme.sh/dnsapi/dns_cloudns.sh (M'għandux jiġi konfuż mal-fajl dns_clouddns.sh). Hawn huma l-linji li jeħtieġ li ma jiġux ikkummentati u editjati:
Fil-parametri, għall-ġejjieni, speċifikajna kmand biex awtomatikament terġa' tgħabbi l-konfigurazzjoni tas-server tal-web wara kull aġġornament tal-validità taċ-ċertifikat fil-futur.
Il-proċess kollu tal-kisba ta 'ċertifikat jista' jieħu sa 2 minuti, tinterrompihx. Jekk iseħħ żball ta' validazzjoni tad-dominju, ipprova erġa' ħaddem il-kmand. Fl-aħħar se naraw minn fejn ġew imniżżla ċ-ċertifikati:
Ejja niftakru dawn il-mogħdijiet; iridu jiġu speċifikati meta tikkopja ċ-ċertifikat għal servers oħra, kif ukoll fis-settings tas-server tal-web. Aħna ma nagħtux attenzjoni għall-iżball tat-tagħbija mill-ġdid tal-konfigurazzjonijiet Nginx - fuq server konfigurat bis-sħiħ, mhux se jidher meta taġġorna ċ-ċertifikati.
Dak kollu li jibqa għalina bl-SSL huwa li nikkopja ċ-ċertifikat riċevut għal żewġ servers oħra, billi nippreservaw it-triq għall-fajls. Ejja noħolqu l-istess direttorji fuq kull wieħed minnhom u nagħmlu kopja:
Biex taġġorna ċ-ċertifikati regolarment, aħna noħolqu kompitu CRON ta 'kuljum fuq iż-żewġ servers bil-kmand:
scp -r [email protected]:/root/.acme.sh/cdn.sayt.in/* /root/.acme.sh/cdn.sayt.in/ && service nginx reload
F'dan il-każ, l-aċċess għas-server tas-sors remot għandu jiġi kkonfigurat biċ-ċavetta, i.e. mingħajr ma ddaħħal password. Tinsiex tagħmel dan.
Installazzjoni u konfigurazzjoni ta 'Nginx
Biex isservi kontenut statiku, se nużaw Nginx konfigurat bħala server proxy caching. Ejja naġġornaw il-listi tal-pakketti u ninstallawha fuq it-tliet servers kollha:
max_size — id-daqs tal-cache li ma jaqbiżx l-ispazju tad-diska disponibbli
inattivi — ħin ta' ħażna għal data fil-cache li ma tkunx ġiet aċċessata
ssl_certificate и ssl_certificate_key — mogħdijiet għaċ-ċertifikat SSL u fajls ewlenin
proxy_cache_valid — il-ħin tal-ħażna tad-dejta fil-cache
proxy_pass — l-indirizz tas-server oriġinali li minnu s-CDN se jitlob fajls għall-caching. Fl-eżempju tagħna dan hu sayt.in
Kif tistgħu taraw, kollox huwa sempliċi. L-unika diffikultà tista' tinħoloq fl-iffissar tal-ħin tal-caching minħabba x-xebh tad-direttivi inattivi и proxy_cache_valid. Ejja nħarsu lejhom bl-eżempju tagħna. Dan huwa dak li jiġri meta inattiv=7d и proxy_cache_valid 90d:
jekk it-talba ma tiġix ripetuta fi żmien 7 ijiem, id-dejta titħassar mill-cache wara dan il-perjodu
jekk it-talba tiġi ripetuta mill-inqas darba kull 7 ijiem, allura d-dejta fil-cache titqies skaduta wara 90 jum u bit-talba li jmiss Nginx jaġġornaha, u jeħodha mis-server oriġinali
Wara li spiċċajt l-editjar nginx.conf, erġa' tagħbija l-konfigurazzjoni:
root@cdn:~# service nginx reload
Is-CDN tagħna hija kompletament lesta. Għal $15/xahar. irċevejna punti ta' preżenza fi tliet kontinenti u 3 TB ta' traffiku: 1 TB f'kull post.
Iċċekkjar tal-operat tas-CDN
Ejja nħarsu lejn il-pings għas-CDN tagħna minn postijiet ġeografiċi differenti. Kwalunkwe servizz ta 'ping huwa adattat għal dan.
Ir-Renju Unit, Londra
cdn.sayt.in
199.247.18.199
14.9
Il-Kanada, Toronto
cdn.sayt.in
149.28.121.123
16.2
L-Istati Uniti, San Francisco
cdn.sayt.in
149.28.121.123
52.7
L-Istati Uniti, Dallas
cdn.sayt.in
149.28.121.123
23.1
L-Istati Uniti, Chicago
cdn.sayt.in
149.28.121.123
2.6
L-Istati Uniti, New York
cdn.sayt.in
149.28.121.123
19.8
Singapor
cdn.sayt.in
157.230.240.216
1.7
Ġappun Tokyo
cdn.sayt.in
157.230.240.216
74.8
L-Awstralja, Sydney
cdn.sayt.in
157.230.240.216
95.9
Ir-riżultati huma tajbin. Issa ejja npoġġu immaġni tat-test fl-għerq tas-sit prinċipali test.jpg u iċċekkja l-veloċità tat-tniżżil tagħha permezz tas-CDN. Jingħad - magħmula. Il-kontenut jitwassal malajr.
Ejja niktbu skript żgħir f'każ li rridu naddfu l-cache fil-punt CDN. tindif.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
Biex tħassar il-cache kollu, mexxiha biss; tista' tneħħi fajl separat bħal dan:
root@cdn:~# ./purge.sh /test.jpg
Minflok il-konklużjonijiet
Fl-aħħarnett, irrid nagħti xi suġġerimenti utli sabiex immedjatament nersaq fuq ir-rake li darba tatni uġigħ ta 'ras:
Biex tiżdied it-tolleranza tal-ħsarat tas-CDN, huwa rrakkomandat li jiġi kkonfigurat DNS Failover, li jgħin biex jinbidel malajr ir-rekord A fil-każ ta 'falliment tas-server. Dan isir fil-pannell tal-kontroll tar-rekords tad-dominju DNS
Siti b'firxa ġeografika wiesgħa bla dubju se jeħtieġu numru kbir ta 'punti CDN, iżda ejja ma nkunux fanatiċi. Probabbilment, l-utent mhux se jinnota differenza sinifikanti meta mqabbel ma’ CDN imħallas jekk tpoġġi servers f’6-7 postijiet: Ewropa, Amerika ta’ Fuq (lvant), Amerika ta’ Fuq (punent), Singapor, Awstralja, Ħong Kong jew Ġappun
Kultant hosters ma jippermettux l-użu ta 'servers mikrija għal skopijiet ta' CDN. Għalhekk, jekk f'daqqa waħda tiddeċiedi li tuża netwerk ta' kunsinna ta' kontenut bħala servizz, tinsiex taqra r-regoli tal-fornitur speċifiku ta' hosting tiegħek minn qabel
Esplora mappa tal-komunikazzjoni taħt l-ilmabiex timmaġina kif il-kontinenti huma konnessi u tqis dan meta tibni netwerk ta’ kunsinna ta’ kontenut
Ipprova iċċekkja pings minn postijiet differenti għas-servers tiegħek. Dan il-mod tista 'tara r-reġjuni l-eqreb għall-punti CDN u tikkonfigura GeoDNS b'mod aktar korrett
Skont il-kompiti, ikun utli li Nginx jiġi ppersonalizzat għal rekwiżiti speċifiċi ta 'caching u b'kont meħud tat-tagħbija fuq is-server. Artikoli dwar Nginx cache għenuni ħafna f'dan - hawn u aċċelerazzjoni tax-xogħol taħt tagħbijiet tqal: hawn и hawn