Do CDN a bhailiú agus a shocrú

Úsáideann láithreáin ghréasáin agus feidhmchláir líonraí seachadta ábhair (CDNanna) go príomha chun luchtú eilimintí statacha a bhrostú. Tarlaíonn sé seo trí chomhaid a thaisceadh ar fhreastalaithe CDN atá lonnaithe i réigiúin gheografacha éagsúla. Trí shonraí a iarraidh trí CDN, faigheann an t-úsáideoir é ón bhfreastalaí is gaire.

Tá prionsabal oibríochta agus feidhmiúlacht gach líonra seachadta inneachair beagnach mar a chéile. Tar éis iarratas a fháil chun comhad a íoslódáil, tógann an freastalaí CDN é aon-uaire ón bhfreastalaí bunaidh agus tugann sé don úsáideoir é, ag an am céanna é a thaisceadh ar feadh tréimhse sonraithe ama. Freagraítear gach iarratas ina dhiaidh sin ón taisce. Tá roghanna ag gach CDN chun comhaid a réamhlódáil, taisce a ghlanadh, dul in éag an taisce a shocrú, agus go leor eile.

Tarlaíonn sé gur gá do líonra seachadta ábhar féin a eagrú ar chúis amháin nó ar chúis eile, agus ansin - b'fhéidir go mbeadh na treoracha chun an chéad rothar eile a chur le chéile ina gcuidiú dúinn.

Do CDN a bhailiú agus a shocrú
Foinse: Veicteoir infographic cruthaithe ag pikisuperstar — www.freepik.com

Cathain a bheidh do CDN féin de dhíth ort?

Breathnaímid ar chásanna ina bhfuil ciall le do CDN féin a rith:

  • nuair is mian leat airgead a shábháil, agus costais reatha fiú nuair a úsáideann CDN saor cosúil le BunnyCDN méid cúpla céad dollar in aghaidh na míosa
  • más mian linn taisce buan nó taisce a fháil gan comharsana ar an bhfreastalaí agus ar an gcainéal
  • Níl pointí láithreachta ag seirbhísí CDN sa réigiún atá uait
  • Tá aon socruithe seachadta ábhair speisialta ag teastáil
  • ba mhaith linn seachadadh an ábhair dhinimiciúil a bhrostú trí fhreastalaithe táirgeachta a chur níos gaire d'úsáideoirí
  • tá imní ann go bhféadfadh seirbhís CDN tríú páirtí faisnéis faoi iompar úsáideoirí a bhailiú nó a úsáid go míchuí (hello do sheirbhísí nach gcomhlíonann an GDPR) nó gabháil do ghníomhaíochtaí mídhleathacha eile

I bhformhór na gcásanna eile, tá sé níos oiriúnaí réitigh réamhdhéanta atá ann cheana a úsáid.

Cad is gá duit a thosú

Tá sé iontach má tá do chóras uathrialach féin (AS) agat. Leis is féidir leat an IP céanna a shannadh do roinnt freastalaithe agus de réir na dtreoracha seo ag leibhéal an líonra, úsáideoirí a dhíriú chuig an gceann is gaire. Is fiú a rá go fiú le bloc seoltaí /24 is féidir líonra seachadta ábhar a thógáil. Ligeann roinnt soláthraithe freastalaí duit fógraíocht a dhéanamh le húsáid i ngach réigiún atá ar fáil dóibh.

Mura bhfuil t-ádh leat ar bhloc seoltaí IP, beidh na rudaí seo a leanas uait chun CDN simplí a sheoladh:

  • ainm fearainn nó fofhearann
  • ar a laghad dhá fhreastalaí i réigiúin éagsúla. Is féidir leis an bhfreastalaí a bheith tiomnaithe nó fíorúil
  • uirlis geoDNS. Lena chabhair, déanfar úsáideoir a fhaigheann rochtain ar fhearann ​​a dhíriú chuig an bhfreastalaí is gaire

Cláraigh fearainn agus freastalaithe ordú

Le clárú fearainn, tá gach rud simplí - cláróimid in aon chrios le haon chláraitheoir. Is féidir leat fofhearann ​​a úsáid freisin don CDN, mar shampla rud éigin mar cdn.domainname.com. Go deimhin, inár sampla déanfaimid é sin.

Maidir le freastalaithe a ordú, ba cheart iad a fháil ar cíos sna réigiúin agus sna tíortha ina bhfuil do lucht éisteachta úsáideora lonnaithe. Má tá an tionscadal idir-ilchríochach, tá sé áisiúil soláthraithe óstála a roghnú a thairgeann freastalaithe ar fud an domhain. Samplaí: OVH, Gréasáin léasa и 100TB - le haghaidh freastalaithe tiomnaithe, Vultr и Aigéan Digiteach — le haghaidh scamall fíorúil*.

Maidir lenár CDN príobháideach, ordóimid 3 fhreastalaí fíorúla ar ilchríocha éagsúla. U Vultr ar an bhfreastalaí le haghaidh $5 in aghaidh na míosa gheobhaimid SSD 25GB áiteanna agus Trácht 1TB. Le linn na suiteála, roghnóimid an Debian is déanaí. Ár bhfreastalaithe:

Do CDN a bhailiú agus a shocrú Frankfurt, IP: 199.247.18.199

Do CDN a bhailiú agus a shocrú Chicago, IP: 149.28.121.123

Do CDN a bhailiú agus a shocrú Singeapór, IP: 157.230.240.216

*Tá Vultr agus DigitalOcean ag gealladh $100 i gcreidmheas d’úsáideoirí a chláraíonn ag baint úsáide as na naisc san alt seo a luaithe a chuireann siad modh íocaíochta leis. Faigheann an t-údar moladh beag as seo freisin, rud atá an-suntasach dó anois. Bí tuisceanach le do thoil.

Socrú geoDNS

Chun a chinntiú nuair a fhaigheann úsáideoir rochtain ar fhearann ​​​​nó fofhearann ​​CDN, go dtreoraítear é chuig an bhfreastalaí inmhianaithe (is gaire), beidh freastalaí DNS againn a bhfuil an fheidhm geoDNS aige.

Is iad seo a leanas prionsabal agus nós imeachta oibriúcháin geoDNS:

  1. Sainmhíníonn sé IP an chliaint a sheol an t-iarratas DNS, nó IP an fhreastalaí DNS athfhillteach a úsáidtear agus iarratas an chliaint á phróiseáil. De ghnáth is soláthraithe DNS iad freastalaithe athchúrsacha den sórt sin.
  2. Aithníonn IP an chliaint a thír nó a réigiún. Chuige seo, úsáidtear bunachair shonraí GeoIP, a bhfuil go leor díobh ann inniu. Tá roinnt cinn maith roghanna saor in aisce.
  3. Ag brath ar shuíomh an chliaint, tugann sé seoladh IP an fhreastalaí CDN is gaire dó.

Is féidir le freastalaí DNS le feidhm geoDNS assemble tú féin é, ach is fearr réitigh réamhdhéanta a úsáid le líonra de fhreastalaithe DNS ar fud an domhain agus Aonchraoladh as an mbosca:

  • ScamallDNS ó $9.95 in aghaidh na míosa, taraif GeoDNS, de réir réamhshocraithe tá Teip DNS amháin
  • Síolóir ó $25 in aghaidh na míosa, DNS Theip ar chumas
  • Bealach Amazon 53 ó $35 in aghaidh na míosa le haghaidh geo-fhiosrúcháin íon 50M. Gearrtar táille ar leithligh ar DNS Failover
  • DNS Déanta Éasca ó $125 in aghaidh na míosa, tá 10 Teip DNS ann
  • Cloudflare, tá an fheidhm “Geo Steering” ar fáil i dtaraifí Fiontair

Agus geoDNS á ordú agat, ba cheart duit aird a thabhairt ar líon na n-iarratas atá ar áireamh sa taraif agus a chur san áireamh go bhféadfadh líon iarbhír na n-iarratas ar an bhfearann ​​​​a bheith i bhfad níos airde ná mar a bhíothas ag súil leis. Oibríonn na milliúin damháin alla, scanóirí, spammers agus biotáillí eile gan staonadh.

I mbeagnach gach seirbhís DNS tá seirbhís fíor-riachtanach chun CDN a thógáil - Teip DNS. Le cabhair uaidh, is féidir leat monatóireacht a dhéanamh ar oibriú do fhreastalaithe agus, mura bhfuil aon chomharthaí saoil ann, cuir seoladh cúltaca an fhreastalaí nach bhfuil ag obair i bhfreagraí DNS in ionad go huathoibríoch.

Chun ár CDN a thógáil úsáidfimid CloudDNS, taraif GeoDNS.

Cuirimis crios DNS nua i do chuntas pearsanta, ag léiriú d’fhearann. Má táimid ag tógáil CDN ar fhofhearann, agus go bhfuil an príomhfhearann ​​​​in úsáid cheana féin, ansin díreach tar éis an crios a chur leis, ná déan dearmad na taifid DNS oibre atá ann cheana féin a chur leis. Is é an chéad chéim eile ná roinnt taifead A a chruthú don fhearann/fofhearann ​​CDN, agus úsáidfear gach ceann acu don réigiún atá sonraithe againn. Is féidir leat ilchríocha nó tíortha a shonrú mar réigiúin; tá fo-réigiúin ar fáil do SAM agus do Cheanada.

Inár gcás, ardófar an CDN ar fhofhearann cdn.sayt.in. Trí chrios a chur leis deirt.in, cruthaimis an chéad A-taifead don fhofhearann ​​agus díreoimid Meiriceá Thuaidh ar fad chuig an bhfreastalaí i Chicago:

Do CDN a bhailiú agus a shocrú
Déanaimis an gníomh arís do réigiúin eile, gan dearmad a dhéanamh iontráil amháin a chruthú do na réigiúin réamhshocraithe. Seo an méid a gheobhaidh tú sa deireadh:

Do CDN a bhailiú agus a shocrú

Ciallaíonn an iontráil réamhshocraithe dheireanach sa screenshot go seolfar gach réigiún neamhshonraithe (is iad sin an Eoraip, an Afraic, úsáideoirí Idirlín satailíte, etc.) chuig an bhfreastalaí in Frankfurt.

Críochnaíonn sé seo an socrú DNS bunúsach. Níl fágtha ach dul go dtí suíomh Gréasáin an chláraitheora fearainn agus na NSanna fearainn reatha a chur in ionad na NSanna atá eisithe ag CloudDNS. Agus na NSanna á nuashonrú, ullmhóimid na freastalaithe.

Suiteáil teastais SSL

Oibreoidh ár CDN thar HTTPS, mar sin má tá deimhnithe SSL agat cheana féin le haghaidh fearainn nó fofhearann, uaslódáil chuig gach freastalaí iad, mar shampla chuig an eolaire /etc/ssl/yourdomain/

Mura bhfuil teastais agat, is féidir leat ceann saor in aisce a fháil ó Let's Encrypt. Foirfe do seo Script ACME Shell. Tá an cliant áisiúil agus éasca a chumrú, agus níos tábhachtaí fós, ceadaíonn sé duit fearann ​​​​/ fofhearann ​​a bhailíochtú ag baint úsáide as DNS tríd an API ó ClouDNS.

Déanfaimid acme.sh a shuiteáil ar cheann amháin de na freastalaithe - European 199.247.18.199, óna ndéanfar deimhnithe a chóipeáil chuig gach ceann eile. Chun é a shuiteáil, déan:

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

Le linn suiteáil na scripte, cruthófar tasc CRON chun teastais a nuashonrú tuilleadh gan ár rannpháirtíocht.

Déanfar fíorú fearainn agus deimhniú á eisiúint trí DNS ag baint úsáide as an API, mar sin i do chuntas pearsanta ClouDNS sa roghchlár Reseller API ní mór duit úsáideoir API nua a chruthú agus pasfhocal a shocrú dó. Scríobhfaimid an t-aitheantas údaraithe mar thoradh air agus pasfhocal i gcomhad ~/.acme.sh/dnsapi/dns_cloudns.sh (gan a mheascadh leis an gcomhad dns_clouddns.sh). Seo iad na línte nach mór a chur in eagar agus gan trácht a dhéanamh orthu:

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

Anois iarraimid teastas SSL le haghaidh cdn.sayt.in

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

Sna paraiméadair, don todhchaí, shonraigh muid ordú chun cumraíocht an fhreastalaí gréasáin a athlódáil go huathoibríoch tar éis gach nuashonrú bailíochta deimhnithe sa todhchaí.

Féadfaidh an próiseas iomlán chun deimhniú a fháil suas le 2 nóiméad a ghlacadh, ná cuir isteach air. Má tharlaíonn earráid bailíochtaithe fearainn, bain triail as an ordú a rith arís. Ag an deireadh feicfimid cá háit ar íoslódáladh na teastais:

Do CDN a bhailiú agus a shocrú

Cuimhnímis ar na cosáin seo; beidh gá iad a shonrú agus an teastas á chóipeáil chuig freastalaithe eile, chomh maith le socruithe an fhreastalaí gréasáin. Ní thugaimid aird ar an earráid a bhaineann le configs Nginx a athlódáil - ar fhreastalaí lán-chumraithe, ní bheidh sé le feiceáil agus deimhnithe á nuashonrú.

Níl fágtha againn ach le SSL ná an deimhniú faighte a chóipeáil chuig dhá fhreastalaí eile, ag caomhnú an chosáin chuig na comhaid. Cruthaimis na heolairí céanna ar gach ceann acu agus déanaimis cóip:

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/

Chun teastais a nuashonrú go rialta, cruthóimid tasc CRON laethúil ar an dá fhreastalaí leis an ordú:

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

Sa chás seo, ní mór rochtain ar an bhfreastalaí foinse iargúlta a chumrú le heochair, i.e. gan focal faire a iontráil. Ná déan dearmad é seo a dhéanamh.

Nginx a shuiteáil agus a chumrú

Chun ábhar statach a sheirbheáil, úsáidfimid Nginx cumraithe mar seachfhreastalaí caching. Déanaimis na liostaí pacáiste a nuashonrú agus é a shuiteáil ar na trí fhreastalaí:

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

In ionad an réamhshocraithe, bainimid úsáid as an config ón spoiler thíos:
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;
    }
  }
}

Sa chumraíocht cuirimid in eagar:

  • uasmhéid — méid an taisce nach mó ná an spás diosca atá ar fáil
  • neamhghníomhach — am stórála le haghaidh sonraí i dtaisce nach bhfuarthas rochtain orthu
  • ssl_teastas и ssl_teastas_eochair — cosáin chuig teastas SSL agus eochairchomhaid
  • seachfhreastalaí_cache_bhailí — am stórála sonraí i dtaisce
  • seachfhreastalaí_pas — seoladh an bhunfhreastalaí óna n-iarrfaidh an CDN comhaid le haghaidh taisce. In ár sampla tá sé seo deirt.in

Mar a fheiceann tú, tá gach rud simplí. D'fhéadfadh an t-aon deacracht a bheith ann maidir leis an am taisce a shocrú mar gheall ar chosúlacht na dtreoracha neamhghníomhach и seachfhreastalaí_cache_bhailí. Breathnaímid orthu ag baint úsáide as ár sampla. Seo cad a tharlaíonn nuair neamhghníomhach=7d и seachfhreastalaí_cache_valid 90d:

  • mura ndéantar an t-iarratas arís laistigh de 7 lá, scriosfar na sonraí ón taisce tar éis na tréimhse seo
  • má dhéantar an t-iarratas arís uair amháin ar a laghad gach 7 lá, ansin measfar go bhfuil na sonraí sa taisce as dáta tar éis 90 lá agus leis an gcéad iarratas eile déanfaidh Nginx é a nuashonrú, á thógáil ón bhfreastalaí bunaidh

Tar éis an eagarthóireacht críochnaithe nginx.conf, athlódáil an chumraíocht:

root@cdn:~# service nginx reload

Tá ár CDN réidh go hiomlán. Ar $15/mí. fuaireamar pointí láithreachta ar thrí mhór-roinn agus 3 TB tráchta: 1 TB i ngach láthair.

Feidhmiú an CDN a sheiceáil

Breathnaímid ar pings chuig ár CDN ó áiteanna geografacha éagsúla. Tá aon seirbhísí ping oiriúnach do seo.

Pointe tosaigh
Óstach
IP
Meán-am, ms

An Ghearmáin Beirlín
cdn.sayt.in
199.247.18.199
9.6

An Ísiltír, Amstardam
cdn.sayt.in
199.247.18.199
10.1

An Fhrainc Páras
cdn.sayt.in
199.247.18.199
16.3

An Ríocht Aontaithe, Londain
cdn.sayt.in
199.247.18.199
14.9

Ceanada, Toronto
cdn.sayt.in
149.28.121.123
16.2

Stáit Aontaithe Mheiriceá, San Francisco
cdn.sayt.in
149.28.121.123
52.7

Stáit Aontaithe Mheiriceá, Dallas
cdn.sayt.in
149.28.121.123
23.1

Stáit Aontaithe Mheiriceá, Chicago
cdn.sayt.in
149.28.121.123
2.6

Stáit Aontaithe Mheiriceá, Nua Eabhrac
cdn.sayt.in
149.28.121.123
19.8

Singeapór
cdn.sayt.in
157.230.240.216
1.7

Tóiceo na Seapáine
cdn.sayt.in
157.230.240.216
74.8

An Astráil, Sydney
cdn.sayt.in
157.230.240.216
95.9

Tá na torthaí go maith. Anois cuirimis íomhá tástála i bhfréamh an phríomhshuímh tástáil.jpg agus seiceáil a luas íoslódála trí CDN. Deirtear - déanta. Seachadtar ábhar go tapa.

Scríobhaimis script bheag ar eagla go mbeimid ag iarraidh an taisce a ghlanadh ag an bpointe 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

Chun an taisce iomlán a scriosadh, níl le déanamh ach é a rith; is féidir leat comhad ar leith a ghlanadh mar seo:

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

In ionad na gconclúidí

Mar fhocal scoir, ba mhaith liom roinnt leideanna úsáideacha a thabhairt chun dul thar an raca a chuir tinneas cinn orm uair amháin:

  • Chun caoinfhulaingt locht CDN a mhéadú, moltar DNS Failover a chumrú, rud a chabhraíonn leis an taifead A a athrú go tapa i gcás teipe freastalaí. Déantar é seo sa phainéal rialaithe taifead DNS fearainn
  • Gan dabht beidh líon mór pointí CDN ag teastáil ó láithreáin a bhfuil raon leathan geografach acu, ach ná bímis fanaitiúil. Is dócha, ní thabharfaidh an t-úsáideoir faoi deara difríocht shuntasach i gcomparáid le CDN íoctha má chuireann tú freastalaithe i 6-7 áit: an Eoraip, Meiriceá Thuaidh (soir), Meiriceá Thuaidh (siar), Singeapór, an Astráil, Hong Cong nó an tSeapáin.
  • Uaireanta ní cheadaíonn óstálaithe úsáid a bhaint as freastalaithe ar cíos chun críocha CDN. Dá bhrí sin, má chinneann tú go tobann líonra seachadta inneachair a imscaradh mar sheirbhís, bí cinnte rialacha do sholáthraí óstála ar leith a léamh roimh ré
  • Déan iniúchadh léarscáil cumarsáide faoi uiscea shamhlú conas atá na ilchríocha nasctha agus é seo a chur san áireamh agus líonra seachadta ábhair á thógáil
  • Bain triail as seiceáil pinginí ó áiteanna éagsúla chuig do fhreastalaithe. Ar an mbealach seo is féidir leat na réigiúin is gaire do phointí CDN a fheiceáil agus GeoDNS a chumrú ar bhealach níos cruinne
  • Ag brath ar na tascanna, bheadh ​​​​sé úsáideach Nginx a shaincheapadh le haghaidh riachtanais caching ar leith agus an t-ualach ar an bhfreastalaí á gcur san áireamh. Chuidigh ailt faoi thaisce Nginx go mór liom leis seo - anseo agus luasghéarú oibre faoi ualaí troma: anseo и anseo

Foinse: will.com