A 'togail agus a' rèiteachadh an CDN agad

Bithear a’ cleachdadh Lìonraidhean Lìbhrigeadh Susbaint (CDNn) air làraich-lìn agus tagraidhean gu sònraichte gus luchdachadh eileamaidean statach a luathachadh. Bidh seo a’ tachairt mar thoradh air tasgadh fhaidhlichean air frithealaichean CDN a tha suidhichte ann an diofar sgìrean cruinn-eòlasach. Le bhith ag iarraidh dàta tro CDN, gheibh an neach-cleachdaidh e bhon t-seirbheisiche as fhaisge.

Tha prionnsapal obrachaidh agus gnìomh gach lìonra lìbhrigidh susbaint timcheall air an aon rud. An dèidh iarrtas fhaighinn airson faidhle a luchdachadh sìos, bheir am frithealaiche CDN e aon-uair bhon t-seirbheisiche tùsail agus bheir e don neach-cleachdaidh e, aig an aon àm ga thasgadh airson ùine shònraichte. Bidh a h-uile iarrtas às deidh sin air a fhreagairt bhon tasgadan. Tha roghainnean aig a h-uile CDN airson faidhlichean ro-luchdachadh, an tasgadan a ghlanadh, an ceann-latha crìochnachaidh a shuidheachadh, agus barrachd.

Tha e a 'tachairt gum feum thu, airson adhbhar air choireigin, an lìonra lìbhrigidh susbaint agad fhèin a chuir air dòigh, agus an uairsin - leig leis an stiùireadh airson an ath bhaidhc a bhith na chuideachadh dhuinn.

A 'togail agus a' rèiteachadh an CDN agad
Source: Vector infographic air a chruthachadh le pikisuperstar - www.freepik.com

Nuair a bhios feum agad air an CDN agad fhèin

Beachdaich air na cùisean far a bheil e ciallach an CDN agad fhèin a ruith:

  • nuair a tha miann ann airgead a shàbhaladh, agus cosgaisean ruith eadhon nuair a bhios tu a’ cleachdadh CDNan saor leithid Bunnycdn suim gu grunn cheudan dolar gach mìos
  • ma tha sinn airson tasgadan maireannach fhaighinn no tasgadan às aonais frithealaiche agus nàbaidhean seanail
  • Chan eil puingean làthaireachd aig seirbheisean CDN san roinn a dh’ fheumas tu
  • suidheachadh lìbhrigidh susbaint sònraichte sam bith a tha a dhìth
  • tha sinn airson lìbhrigeadh susbaint fiùghantach a luathachadh le bhith a’ cur an fhrithealaiche riochdachaidh nas fhaisge air luchd-cleachdaidh
  • tha dragh ann gum faodadh seirbheis CDN treas-phàrtaidh fiosrachadh a chruinneachadh no a chleachdadh gu mì-laghail mu ghiùlan luchd-cleachdaidh (hello seirbheisean nach eil a’ gèilleadh ri GDPR) no a dhol an sàs ann an gnìomhan mì-laghail eile

Anns a 'mhòr-chuid de chùisean eile, tha e nas freagarraiche na fuasglaidhean deiseil a th' ann mar-thà a chleachdadh.

Dè dh'fheumas tu airson tòiseachadh

Tha e mìorbhaileach ma tha an siostam fèin-riaghlaidh agad fhèin (AS). Leis, faodaidh tu an aon IP a shònrachadh do ghrunn luchd-frithealaidh agus a rèir an stiùiridh so aig ìre lìonra, stiùir luchd-cleachdaidh chun fhear as fhaisge. Is fhiach a ràdh, eadhon leis a’ bhloc seòladh /24, gu bheil e comasach lìonra lìbhrigidh susbaint a thogail. Leigidh cuid de sholaraichean frithealaiche dhut sanas a dhèanamh airson a chleachdadh anns gach roinn a tha rim faighinn dhaibh.

Mura h-eil thu nad neach-seilbh toilichte air bloc de sheòlaidhean IP, feumaidh tu CDN sìmplidh a ruith:

  • ainm fearainn no fo-àrainn
  • co-dhiù dà fhrithealaiche ann an diofar roinnean. Faodaidh am frithealaiche a bhith coisrigte no brìgheil
  • inneal geoDNS. Leis, thèid an neach-cleachdaidh, an dèidh dèiligeadh ris an àrainn, a stiùireadh chun t-seirbheisiche as fhaisge

Clàraich àrainn agus òrdaich frithealaichean

Le clàradh fearainn, tha a h-uile dad sìmplidh - bidh sinn a’ clàradh ann an sòn sam bith le neach-clàraidh sam bith. Faodaidh tu cuideachd subdomain a chleachdadh airson CDN, mar eisimpleir rudeigin mar cdn.domainname.com. Gu fìrinneach, san eisimpleir againn, nì sinn dìreach sin.

A thaobh òrdachadh frithealaichean, bu chòir dhaibh a bhith air màl anns na roinnean agus na dùthchannan far a bheil an luchd-cleachdaidh agad suidhichte. Ma tha am pròiseact eadar-roinneil, tha e goireasach solaraichean aoigheachd a thaghadh a bheir seachad frithealaichean air feadh an t-saoghail aig an aon àm. Eisimpleirean: OVH, lìn air màl и 100tb - airson frithealaichean sònraichte, Vultr и DigitalOcean - airson sgòth brìgheil *.

Airson an CDN prìobhaideach againn, òrdaichidh sinn 3 frithealaichean brìgheil air diofar mòr-thìrean. Aig Vultr air an fhrithealaiche airson $5 / mo gheibh sinn 25GB SSD àiteachan agus 1TB de thrafaig. Nuair a bhios tu a’ stàladh, tagh an Debian as ùire. Na frithealaichean againn:

A 'togail agus a' rèiteachadh an CDN agad Frankfurt, IP: 199.247.18.199

A 'togail agus a' rèiteachadh an CDN agad Chicago, IP: 149.28.121.123

A 'togail agus a' rèiteachadh an CDN agad Сингапур, IP: 157.230.240.216

* Tha Vultr agus DigitalOcean a’ gealltainn creideas $100 do luchd-cleachdaidh a chlàras tro na ceanglaichean san artaigil dìreach às deidh dhaibh dòigh pàighidh a chuir ris. Tha an t-ùghdar cuideachd a' faighinn moladh beag bho seo, rud a tha gu math cudromach dha a-nis. Feuch gum bi thu tuigseach.

A 'stèidheachadh geoDNS

Gus an tèid an neach-cleachdaidh a stiùireadh chun t-seirbheisiche a tha thu ag iarraidh (as fhaisge) nuair a gheibh sinn cothrom air àrainn no subdomain CDN, feumaidh sinn frithealaiche DNS leis a’ ghnìomh geoDNS.

Tha prionnsapal agus obrachadh geoDNS mar a leanas:

  1. Sònraich IP an neach-dèiligidh a chuir an t-iarrtas DNS a-steach, no IP an fhrithealaiche DNS ath-chuairteach a thathas a’ cleachdadh nuair a thathar a’ giullachd iarrtas an neach-dèiligidh. Mar as trice bidh na frithealaichean ath-chuairteach sin mar DNS-s de sholaraichean.
  2. Tha IP an neach-dèiligidh ag aithneachadh a dhùthaich no a sgìre. Airson seo, thathas a’ cleachdadh stòran-dàta GeoIP, agus tha tòrr dhiubh ann an-diugh. Tha math ann roghainnean an-asgaidh.
  3. A rèir far a bheil an neach-dèiligidh, bheir e dha seòladh IP an fhrithealaiche CDN as fhaisge.

Faodaidh frithealaiche DNS le gnìomh geoDNS a bhith cruinnich thu fein, ach tha e nas fheàrr fuasglaidhean deiseil a chleachdadh le lìonra de luchd-frithealaidh DNS air feadh an t-saoghail agus Anycast bhon bhogsa:

  • SlouDNS от $9.95 / mo, Tar-chur GeoDNS, gu bunaiteach tha aon DNS Failover
  • Sìolar от $25 / mo, DNS Failover air a chomasachadh
  • Slighe Amazon 53 от $35 / mo airson lìon geo-iarrtasan 50M. Tha DNS Failover air a phàigheadh ​​​​air leth
  • DNS air a dhèanamh furasta от $125 / mo, tha 10 DNS Failovers ann
  • Cloudflare, tha feart “Geo Steering” ri fhaighinn ann am planaichean Iomairt

Nuair a bhios tu ag òrdachadh geoDNS, bu chòir dhut aire a thoirt don àireamh de dh'iarrtasan a tha air an toirt a-steach don phrìs agus cuimhneachadh gum faod an fhìor àireamh de dh'iarrtasan don àrainn a bhith nas àirde na dùil grunn thursan. Bidh milleanan de damhain-allaidh, sganairean, spammers agus spioradan olc eile ag obair gu cruaidh.

Tha cha mhòr a h-uile seirbheis DNS a’ toirt a-steach seirbheis riatanach airson CDN a thogail - DNS Failover. Le a chuideachadh, faodaidh tu sgrùdadh a chuir air dòigh air gnìomhachd an luchd-frithealaidh agad agus, às aonais comharran beatha, cuir cùl-taic an àite seòladh frithealaiche nach eil ag obair gu fèin-ghluasadach ann am freagairtean DNS.

Gus an CDN againn a thogail, cleachdaidh sinn CloudDNS, tar-chur GeoDNS.

Nach cuir sinn sòn DNS ùr ris a’ chunntas pearsanta agad, a’ sònrachadh an àrainn agad. Ma tha sinn a’ togail CDN air subdomain, agus gu bheil am prìomh raon ga chleachdadh mu thràth, an uairsin dìreach às deidh dhut an sòn a chuir ris, na dìochuimhnich na clàran DNS obrach a tha ann mu thràth a chuir ris. Is e an ath cheum grunn chlàran A a chruthachadh airson an àrainn / subdomain CDN, agus thèid gach fear dhiubh a chuir an sàs san roinn a shònraich sinn. Faodaidh tu mòr-thìrean no dùthchannan a shònrachadh mar roinnean, tha fo-roinnean rim faighinn airson na SA agus Canada.

Anns a’ chùis againn, thèid an CDN a thogail air subdomain cdn.sayt.in. Le bhith a 'cur sòn ait.in, cruthaich a’ chiad chlàr A airson an fho-àrainn agus comharraich Ameireaga a-Tuath gu lèir chun t-seirbheisiche ann an Chicago:

A 'togail agus a' rèiteachadh an CDN agad
Dèanamaid a-rithist an gnìomh airson roinnean eile, a 'cuimhneachadh aon inntrigeadh a chruthachadh airson na roinnean bunaiteach. Seo na thachras aig a’ cheann thall:

A 'togail agus a' rèiteachadh an CDN agad

Tha an inntrigeadh bunaiteach mu dheireadh san ath-sgrìn a’ ciallachadh gun tèid a h-uile roinn neo-ainmichte (agus is iad sin an Roinn Eòrpa, Afraga, saideal luchd-cleachdaidh eadar-lìn, msaa) a chuir chun t-seirbheisiche ann am Frankfurt.

Cuiridh seo crìoch air an stèidheachadh DNS bunaiteach. Tha e fhathast ri dhol gu làrach-lìn neach-clàraidh an àrainn agus cuir a-mach an fheadhainn a chuir ClouDNS a-mach an àite nan NS fearainn gnàthach. Agus ged a thèid na NSn ùrachadh, ullaichidh sinn na frithealaichean.

Stàladh teisteanasan SSL

Obraichidh an CDN againn thairis air HTTPS, mar sin ma tha teisteanasan SSL agad mu thràth airson àrainn no fo-àrainn, luchdaich suas iad chun a h-uile frithealaiche, mar eisimpleir, chun eòlaire /etc/ssl/yourdomain/

Mura h-eil teisteanasan ann, gheibh thu fear an-asgaidh bho Let's Encrypt. Perfect airson seo ACME Shellscript. Tha an neach-dèiligidh goireasach agus furasta a stèidheachadh, agus nas cudromaiche, leigidh e leat àrainn / fo-roinn a dhearbhadh le DNS tro API ClouDNS.

Cuiridh sinn a-steach acme.sh air dìreach aon de na frithealaichean - European 199.247.18.199, às an tèid teisteanasan a chopaigeadh chun a h-uile duine eile. Gus a stàladh, ruith:

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

Nuair a thèid an sgriobt a chuir a-steach, thèid obair CRON a chruthachadh airson tuilleadh ùrachadh air teisteanasan às aonais ar com-pàirt.

Nuair a chuireas tu a-mach teisteanas, thèid an àrainn a sgrùdadh le bhith a’ cleachdadh DNS a’ cleachdadh an API, mar sin ann an cunntas pearsanta ClouDNS anns a’ chlàr Reseller API, feumaidh tu API cleachdaiche ùr a chruthachadh agus facal-faire a shuidheachadh air a shon. Thèid an t-ùghdar a thig às le facal-faire a sgrìobhadh san fhaidhle ~/.acme.sh/dnsapi/dns_cloudns.sh (gun a bhith air a mheasgadh leis an fhaidhle dns_clouddns.sh). Seo na loidhnichean a dh’ fheumas a bhith gun iomradh agus deasachadh:

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

A-nis iarraidh sinn teisteanas SSL airson cdn.sayt.in

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

Anns na roghainnean, airson an ama ri teachd, tha sinn air àithne a shònrachadh gus rèiteachadh an fhrithealaiche lìn ath-luchdachadh gu fèin-ghluasadach às deidh gach ùrachadh air ùine dligheachd an teisteanais san àm ri teachd.

Faodaidh am pròiseas air fad airson teisteanas fhaighinn suas ri 2 mhionaid, na cuir stad air. Ma thachras mearachd dearbhaidh àrainn, feuch an ruith thu an àithne a-rithist. Aig an deireadh chì sinn far an deach na teisteanasan a luchdachadh suas:

A 'togail agus a' rèiteachadh an CDN agad

Cuimhnich air na slighean sin, feumaidh iad a bhith air an sònrachadh nuair a bhios tu a’ dèanamh lethbhreac den teisteanas gu frithealaichean eile, a bharrachd air ann an roghainnean an fhrithealaiche lìn. Cha bhith sinn a’ toirt aire don mhearachd ann a bhith ag ath-luchdachadh configs Nginx - cha bhith e air frithealaiche làn-rèiteachaidh nuair a bhios sinn ag ùrachadh theisteanasan.

Chan eil air fhàgail againn ach airson SSL an teisteanas a fhuair sinn a chopaigeadh gu dà fhrithealaiche eile fhad ‘s a chumas sinn an t-slighe gu na faidhlichean. Cruthaichidh sinn na h-aon chlàran air gach fear dhiubh agus dèan lethbhreac dhiubh:

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/

Gus teisteanasan ùrachadh gu cunbhalach, cruthaich obair CRON làitheil air an dà fhrithealaiche leis an àithne:

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

Anns a 'chùis seo, feumar ruigsinneachd air an fhrithealaiche stòr iomallach a rèiteachadh le iuchair, i.e. gun a dhol a-steach facal-faire. Na dìochuimhnich a dhèanamh.

A 'stàladh agus a' rèiteachadh Nginx

Gus susbaint statach a fhrithealadh, cleachdaidh sinn Nginx air a rèiteachadh mar fhrithealaiche proxy caching. Ùraich na liostaichean pacaid agus stàlaich e air na trì frithealaichean:

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

An àite an àbhaist, bidh sinn a’ cleachdadh an config bhon spoiler gu h-ìosal:
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;
    }
  }
}

Deasaich san config:

  • meud_as motha - meud an tasgadan, gun a bhith nas àirde na an àite diosc a tha ri fhaighinn
  • neo-ghnìomhach - ùine stòraidh de dhàta taisgte nach d’ fhuair duine cothrom
  • teisteanas ssl_ и ssl_certificate_key - slighean gu teisteanas SSL agus prìomh fhaidhlichean
  • proxy_cache_valid - ùine stòraidh dàta taisgte
  • proxy_pass - seòladh an fhrithealaiche tùsail às an iarr an CDN faidhlichean airson an tasgadh. Anns an eisimpleir againn, seo ait.in

Mar a chì thu, tha a h-uile dad sìmplidh. Chan urrainn dha duilgheadas èirigh ach ann a bhith a’ suidheachadh na h-ùine caching air sgàth cho coltach ‘s a tha na stiùiridhean neo-ghnìomhach и proxy_cache_valid. Nì sinn sgrùdadh orra leis an eisimpleir againn. Seo na thachras nuair a neo-ghnìomhach = 7d и proxy_cache_valid 90d:

  • mura tèid an t-iarrtas a-rithist taobh a-staigh 7 latha, thèid an dàta a dhubhadh às an tasgadan às deidh na h-ùine seo
  • ma thèid an t-iarrtas a-rithist co-dhiù aon turas gach 7 latha, thèid beachdachadh air an dàta san tasgadan a dhol à bith às deidh làithean 90 agus bheir Nginx ùrachadh leis an ath iarrtas, ga thoirt bhon t-seirbheisiche tùsail

Crìochnaichte airson deasachadh nginx.conf, ath-luchdaich an rèiteachadh:

root@cdn:~# service nginx reload

Tha an CDN againn deiseil. Airson $ 15 / mo. fhuair sinn puingean làthaireachd air trì mòr-thìrean agus 3 TB de thrafaig: 1 TB anns gach àite.

A’ sgrùdadh obair CDN

Bheir sinn sùil air na pings don CDN againn bho dhiofar àiteachan cruinn-eòlasach. Bidh seirbheis ping sam bith ag obair airson seo.

Puing tòiseachaidh
òstair
IP
Avg uair, ms

Berlin sa Ghearmailt
cdn.sayt.in
199.247.18.199
9.6

An Òlaind, Amsterdam
cdn.sayt.in
199.247.18.199
10.1

An Fhraing Paris
cdn.sayt.in
199.247.18.199
16.3

Breatainn Mhòr, Lunnainn
cdn.sayt.in
199.247.18.199
14.9

Canada, Toronto
cdn.sayt.in
149.28.121.123
16.2

Na Stàitean Aonaichte, San Francisco
cdn.sayt.in
149.28.121.123
52.7

Na Stàitean Aonaichte, Dallas
cdn.sayt.in
149.28.121.123
23.1

Na Stàitean Aonaichte, Chicago
cdn.sayt.in
149.28.121.123
2.6

Na Stàitean Aonaichte, New York
cdn.sayt.in
149.28.121.123
19.8

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

Iapan Tokyo
cdn.sayt.in
157.230.240.216
74.8

Astràilia, Sidni
cdn.sayt.in
157.230.240.216
95.9

Tha na toraidhean math. A-nis cuiridh sinn ìomhaigh deuchainn ann am freumh a 'phrìomh làrach deasaich an tùs] agus thoir sùil air an astar luchdachadh sìos aige tro CDN. Thathas ag ràdh - dèanta. Tha susbaint air a lìbhrigeadh gu sgiobalta.

Sgrìobhamaid sgriobt beag gun fhios nach bi sinn airson an tasgadan air a’ phuing CDN a ghlanadh.
glanadh.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

Gus an tasgadan gu lèir a dhubhadh às, dìreach ruith e, faodar faidhle air leth a ghlanadh mar seo:

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

An àite co-dhùnaidhean

Mu dheireadh, tha mi airson molaidhean feumail a thoirt seachad gus ceum a ghabhail sa bhad thairis air an ràcan a thug air mo cheann a ghoirteachadh aig an àm:

  • Gus fulangas locht an CDN a mheudachadh, thathas a ’moladh DNS Failover a rèiteachadh, a chuidicheas le bhith ag atharrachadh a’ chlàr A gu sgiobalta ma thachras briseadh frithealaiche. Tha seo air a dhèanamh ann am pannal smachd clàran DNS den àrainn.
  • Chan eil teagamh nach eil làraichean le còmhdach cruinn-eòlach farsaing a' cur feum air àireamh mhòr de CDNn, ach na bitheamaid fanaideach. Is coltaiche nach mothaich an neach-cleachdaidh eadar-dhealachadh mòr an taca ri CDN pàighte ma chuireas tu frithealaichean ann an 6-7 àiteachan: an Roinn Eòrpa, Ameireagadh a Tuath (an ear), Ameireaga a-Tuath (siar), Singapore, Astràilia, Hong Kong no Iapan
  • Aig amannan chan eil luchd-aoigheachd a’ ceadachadh frithealaichean màil a chleachdadh airson adhbharan CDN. Mar sin, ma cho-dhùnas tu gu h-obann lìonra lìbhrigidh susbaint a chleachdadh mar sheirbheis, na dìochuimhnich riaghailtean solaraiche aoigheachd sònraichte a leughadh ro-làimh
  • Rannsaich mapa conaltraidh fon uisgeriochdachadh mar a tha na mòr-thìrean ceangailte agus seo a thoirt fa-near nuair a bhios tu a’ togail lìonra lìbhrigidh susbaint
  • Feuch ri sgrùdadh pings bho dhiofar àiteachan do na seirbhisich agad. San dòigh seo chì thu na roinnean as fhaisge air na puingean CDN agus GeoDNS a rèiteachadh nas ceart
  • A rèir nan gnìomhan, bidh e feumail Nginx a ghleusadh airson riatanasan sònraichte caching agus a’ toirt aire don luchd air an fhrithealaiche. Chuidich na h-artaigilean mu dheidhinn tasgadan Nginx mi gu mòr ann an seo - an seo agus luathachadh obair fo luchdan troma: an seo и an seo

Source: www.habr.com