Manangana sy manamboatra ny CDN-nao

Ny tamba-jotra fanaterana votoaty (CDNs) dia ampiasain'ny tranonkala sy fampiharana indrindra indrindra mba hanafainganana ny fampidinana ireo singa static. Mitranga izany amin'ny alàlan'ny cache rakitra amin'ny mpizara CDN any amin'ny faritra ara-jeografika samihafa. Amin'ny fangatahana data amin'ny alàlan'ny CDN, ny mpampiasa dia mandray izany avy amin'ny mpizara akaiky indrindra.

Mitovy ihany ny foto-pitsipika fiasana sy ny fiasan'ny tamba-jotra fanaterana votoaty rehetra. Rehefa nahazo fangatahana hisintona rakitra iray, ny mpizara CDN dia maka azy indray mandeha avy amin'ny mpizara tany am-boalohany ary manome izany ho an'ny mpampiasa, miaraka amin'ny caching azy mandritra ny fe-potoana voafaritra. Ny fangatahana manaraka rehetra dia valiana avy amin'ny cache. Ny CDN rehetra dia manana safidy amin'ny fandefasana rakitra mialoha, fanadiovana ny cache, fametrahana ny fahataperan'ny cache, sy ny maro hafa.

Mitranga fa noho ny antony iray na hafa dia ilaina ny mandamina ny tambajotra fanaterana votoaty anao manokana, ary avy eo - enga anie ny torolalana amin'ny fanangonana ny bisikileta manaraka dia hanampy antsika.

Manangana sy manamboatra ny CDN-nao
Source: Vector infographic noforonin'i pikisuperstar — www.freepik.com

Rahoviana ianao no mila CDN anao manokana?

Andeha hojerentsika ireo tranga izay mahatonga ny CDN anao manokana:

  • rehefa te-hitsitsy vola ianao, ary ny fandaniana amin'ny fandehanana na dia mampiasa CDN tsy lafo toy ny BunnyCDN mitentina an-jatony dolara isam-bolana
  • raha te-hahazo cache maharitra na cache tsy misy mpifanolo-bodirindrina amin'ny mpizara sy ny fantsona
  • Ny serivisy CDN dia tsy manana toerana misy eo amin'ny faritra ilainao
  • Ilaina ny firafitry ny fanaterana atiny manokana
  • tianay ny hanafaingana ny fandefasana votoaty mavitrika amin'ny fametrahana ny lohamilina famokarana akaiky kokoa ny mpampiasa
  • Misy ny ahiahy fa mety hanangona na hampiasa tsy ara-dalàna ny fampahalalana momba ny fitondran-tenan'ny mpampiasa ny serivisy CDN antoko fahatelo (miarahaba ny serivisy tsy mifanaraka amin'ny GDPR) na manao hetsika tsy ara-dalàna hafa.

Amin'ny ankamaroan'ny toe-javatra hafa dia mety kokoa ny mampiasa vahaolana efa vita.

Inona no ilainao hanombohana

Tena mahafinaritra raha manana ny rafitrao manokana (AS) ianao. Miaraka amin'izany ianao dia afaka manendry IP mitovy amin'ny mpizara maromaro ary araka ity toromarika ity eo amin'ny sehatry ny tambajotra, tariho ny mpampiasa amin'ny akaiky indrindra. Tsara ny milaza fa na dia miaraka amin'ny sakana adiresy /24 aza dia azo atao ny manangana tambajotra fanaterana votoaty. Ny mpanome serivisy sasany dia mamela anao hanao dokam-barotra mba hampiasaina any amin'ny faritra rehetra misy azy ireo.

Raha tsy tompon'ny sakana adiresy IP ianao, dia mila ny fandefasana CDN tsotra ianao:

  • anaran-tsehatra na subdomain
  • farafahakeliny mpizara roa any amin'ny faritra samihafa. Ny mpizara dia mety ho voatokana na virtoaly
  • fitaovana geoDNS. Miaraka amin'ny fanampiany, ny mpampiasa miditra amin'ny sehatra iray dia halefa any amin'ny mpizara akaiky indrindra

Manorata sehatra iray ary manafatra mpizara

Amin'ny fisoratana anarana amin'ny sehatra dia tsotra ny zava-drehetra - misoratra anarana amin'ny faritra rehetra miaraka amin'ny mpisoratra anarana rehetra. Azonao atao koa ny mampiasa subdomain ho an'ny CDN, ohatra ny zavatra toy izany cdn.domainname.com. Raha ny marina, amin'ny ohatra asehontsika dia hanao izany isika.

Raha ny amin'ny famandrihana server dia tokony hofaina any amin'ny faritra sy firenena misy ny mpihaino anao. Raha intercontinental ny tetikasa, dia tsara ny misafidy mpanome fampiantranoana izay manolotra mpizara manerana izao tontolo izao. Ohatra: OVH, manofa tranonkala и 100TB - ho an'ny mpizara voatokana, Vultr и DigitalOcean — ho an'ny rahona virtoaly*.

Ho an'ny CDN manokana, hanafatra mpizara virtoaly 3 amin'ny kaontinanta samihafa izahay. U Vultr amin'ny mpizara ho $5/volana ho azontsika SSN XXXGB toerana ary 1TB fifamoivoizana. Mandritra ny fametrahana dia hifidy ny Debian farany izahay. Ny mpizara anay:

Manangana sy manamboatra ny CDN-nao Frankfurt, ip: 199.247.18.199

Manangana sy manamboatra ny CDN-nao Chicago, ip: 149.28.121.123

Manangana sy manamboatra ny CDN-nao Сингапур, ip: 157.230.240.216

*Vultr sy DigitalOcean dia mampanantena crédit $100 ho an'ireo mpampiasa izay misoratra anarana amin'ny fampiasana ireo rohy ato amin'ity lahatsoratra ity rehefa manampy fomba fandoavam-bola. Mandray fiderana kely ihany koa ny mpanoratra avy amin’izany, izay tena manan-danja aminy ankehitriny. Mba mahaiza mahafantatra.

Fametrahana geoDNS

Mba hahazoana antoka fa rehefa miditra amin'ny sehatra CDN na subdomain ny mpampiasa iray, dia alefa any amin'ny mpizara (akaiky) tadiavina izy, dia mila mpizara DNS miaraka amin'ny fiasa geoDNS isika.

Ny fitsipika sy ny fomba fiasa amin'ny geoDNS dia toy izao manaraka izao:

  1. Mamaritra ny IP an'ny mpanjifa nandefa ny fangatahana DNS, na ny IP an'ny mpizara DNS miverimberina izay ampiasaina amin'ny fanodinana ny fangatahan'ny mpanjifa. Ny mpizara recursive toy izany dia matetika mpamatsy DNS.
  2. Ny IP an'ny mpanjifa dia mamaritra ny firenena na ny faritra misy azy. Amin'izany dia ampiasaina ny angon-drakitra GeoIP, izay be dia be amin'izao fotoana izao. Misy ny tsara safidy malalaka.
  3. Miankina amin'ny toerana misy ny mpanjifa, manome azy ny adiresy IP an'ny mpizara CDN akaiky indrindra.

Ny mpizara DNS manana fiasa geoDNS dia mety ho vorio ny tenanao, fa tsara kokoa ny mampiasa vahaolana efa vita miaraka amin'ny tambajotran'ny mpizara DNS manerana izao tontolo izao ary Anycast avy amin'ny boaty:

  • CloudDNS от $9.95/volana, Tarif GeoDNS, raha ny default dia misy DNS Failover iray
  • Zilore от $25/volana, DNS Failover dia alefa
  • Amazon Route 53 от $35/volana ho an'ny fanontaniana geo 50M madio. Ny DNS Failover dia voampanga misaraka
  • DNS natao mora от $125/volana, misy 10 DNS Failovers
  • Cloudflare, ny fiasa "Geo Steering" dia misy amin'ny vidin'ny orinasa

Rehefa manafatra geoDNS ianao dia tokony handinika ny isan'ny fangatahana tafiditra ao amin'ny tariff ary raisina an-tsaina fa ny tena isan'ny fangatahana amin'ny sehatra dia mety ho avo kokoa noho ny nantenaina. Ny hala an-tapitrisa, ny scanner, ny spammers ary ny fanahy ratsy hafa dia miasa tsy an-kijanona.

Saika ny serivisy DNS rehetra dia misy serivisy ilaina amin'ny fananganana CDN - DNS Failover amin'ny vidiny. Miaraka amin'ny fanampiany dia azonao atao ny mametraka fanaraha-maso ny fiasan'ny mpizara anao ary, raha tsy misy famantarana ny fiainana, dia manolo ho azy ny adiresin'ny mpizara tsy miasa amin'ny valin'ny DNS amin'ny backup iray.

Mba hananganana ny CDN dia hampiasainay CloudDNS, Tarif GeoDNS.

Andeha isika hanampy faritra DNS vaovao ao amin'ny kaontinao manokana, manondro ny fonenanao. Raha manangana CDN amin'ny subdomain isika, ary efa ampiasaina ny sehatra lehibe, avy hatrany aorian'ny fampidirana ny faritra dia aza adino ny manampy ny rakitra DNS miasa efa misy. Ny dingana manaraka dia ny famoronana rakitsoratra A maromaro ho an'ny sehatra/subdomain CDN, izay samy hampiasaina amin'ny faritra nofaritanay. Azonao atao ny mamaritra ny kaontinanta na firenena ho faritra; Ny zana-paritra dia misy any Etazonia sy Kanada.

Amin'ity tranga ity, ny CDN dia hatsangana amin'ny subdomain cdn.sayt.in. Amin'ny fampidirana faritra iray sayt.in, andao hamorona ny rakitsoratra A voalohany ho an'ny subdomain ary hitarika an'i Amerika Avaratra rehetra amin'ny mpizara any Chicago:

Manangana sy manamboatra ny CDN-nao
Aleo averina ny hetsika ho an'ny faritra hafa, tsy adino ny mamorona fidirana iray ho an'ny faritra mahazatra. Izao no azonao amin'ny farany:

Manangana sy manamboatra ny CDN-nao

Ny fidiran'ny default farany amin'ny pikantsary dia midika fa halefa any amin'ny lohamilina any Frankfurt ny faritra tsy voafaritra rehetra (ary ireo dia Eoropa, Afrika, mpampiasa Internet zanabolana, sns.).

Izany dia mamita ny fametrahana DNS fototra. Ny hany sisa tavela dia ny mandeha any amin'ny tranokalan'ny registrar domain ary manolo ny domains amin'izao fotoana izao miaraka amin'ireo navoakan'ny ClouDNS. Ary mandritra ny fanavaozana ny NS dia hanomana ireo mpizara izahay.

Fametrahana certificat SSL

Ny CDN-nay dia hiasa amin'ny HTTPS, ka raha efa manana mari-pankasitrahana SSL ianao ho an'ny sehatra iray na subdomain dia ampidiro any amin'ny mpizara rehetra, ohatra amin'ny lahatahiry. /etc/ssl/yourdomain/

Raha tsy manana mari-pankasitrahana ianao dia afaka mahazo maimaim-poana amin'ny Let's Encrypt. Tonga lafatra amin'izany ACME Shell script. Ny mpanjifa dia mety sy mora amboarina, ary ny tena zava-dehibe dia mamela anao hanamarina sehatra/subdomain mampiasa DNS amin'ny alàlan'ny API avy amin'ny ClouDNS.

Hametraka acme.sh amin'ny iray amin'ireo lohamilina ihany izahay - Eoropeana 199.247.18.199, avy amin'izany ny mari-pankasitrahana azo adika amin'ny hafa rehetra. Raha hametraka, ataovy:

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

Mandritra ny fametrahana ny script dia hisy asa CRON hatsangana ho fanavaozana bebe kokoa ny mari-pankasitrahana raha tsy misy ny fandraisantsika anjara.

Ny fanamarinana sehatra rehefa mamoaka taratasy fanamarinana dia atao amin'ny alàlan'ny DNS mampiasa ny API, ka ao amin'ny kaontinao manokana ClouDNS ao amin'ny menio Reseller API dia mila mamorona mpampiasa API vaovao ianao ary mametraka tenimiafina ho azy. Hanoratra ny auth-id misy tenimiafina ao anaty rakitra isika ~/.acme.sh/dnsapi/dns_cloudns.sh (tsy tokony hafangaro amin'ny rakitra dns_clouddns.sh). Ireto ny andalana tsy maintsy asiana fanamarihana sy fanitsiana:

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

Andeha isika hangataka mari-pankasitrahana SSL ho an'ny cdn.sayt.in

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

Ao amin'ny mari-pamantarana, ho an'ny ho avy, dia nanondro baiko izahay hamerenana ho azy ny tefin'ny mpizara tranonkala aorian'ny fanavaozana ny fanamarinana fanamarinana tsirairay amin'ny ho avy.

Ny dingana manontolo amin'ny fahazoana taratasy fanamarinana dia mety haharitra 2 minitra, aza manapaka izany. Raha misy hadisoana momba ny fanamarinana domaine dia andramo indray ny baiko. Amin'ny farany dia ho hitantsika hoe taiza no nakana ny taratasy fanamarinana:

Manangana sy manamboatra ny CDN-nao

Andeha hotadidintsika ireo lalana ireo; mila asongadina izy ireo rehefa mandika ny taratasy fanamarinana amin'ny mpizara hafa, ary koa ao amin'ny firafitry ny mpizara tranonkala. Tsy miraharaha ny fahadisoana amin'ny famerenana indray ny configs Nginx izahay - amin'ny mpizara voarindra tanteraka, tsy hiseho izany rehefa manavao ny mari-pankasitrahana.

Ny hany sisa tavela ho antsika miaraka amin'ny SSL dia ny mandika ny taratasy fanamarinana voaray amin'ny mpizara roa hafa, mitahiry ny lalana mankany amin'ireo rakitra. Andao hamorona lahatahiry mitovy amin'ny tsirairay amin'izy ireo ary hanao dika mitovy:

root@cdn:~# mkdir -p /root/.acme.sh/cdn.sayt.in/
root@cdn:~# scp -r root@199.247.18.199:/root/.acme.sh/cdn.sayt.in/* /root/.acme.sh/cdn.sayt.in/

Mba hanavaozana tsy tapaka ny mari-pankasitrahana dia hamorona asa CRON isan'andro amin'ny mpizara roa miaraka amin'ny baiko izahay:

scp -r root@199.247.18.199:/root/.acme.sh/cdn.sayt.in/* /root/.acme.sh/cdn.sayt.in/ && service nginx reload

Amin'ity tranga ity, ny fidirana amin'ny mpizara loharano lavitra dia tsy maintsy amboarina amin'ny fanalahidy, i.e. tsy misy tenimiafina. Aza adino ny manao izany.

Fametrahana sy fanamboarana Nginx

Mba hanompoana votoaty static dia hampiasa ny Nginx namboarina ho mpizara proxy caching izahay. Andao hanavao ny lisitry ny fonosana ary apetraho amin'ny mpizara telo:

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

Raha tokony ho ny default, dia mampiasa ny config avy amin'ny mpandroba eto ambany izahay:
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;
    }
  }
}

Ao amin'ny config dia ovainay:

  • max_size - ny haben'ny cache tsy mihoatra ny habaka kapila misy
  • tsy mavitrika - fotoana fitehirizana ho an'ny angona voatahiry izay tsy nidirana
  • ssl_certificate и ssl_certificate_key - lalana mankany amin'ny taratasy fanamarinana SSL sy rakitra fototra
  • proxy_cache_valid - fotoana fitehirizana ny angona voatahiry
  • proxy_pass - ny adiresin'ny mpizara tany am-boalohany izay hangatahan'ny CDN ny rakitra ho an'ny caching. Amin'ny ohatra ataontsika dia izao sayt.in

Araka ny hitanao dia tsotra ny zava-drehetra. Ny hany fahasarotana dia mety hipoitra amin'ny fametrahana ny fotoana caching noho ny fitovian'ny torolàlana tsy mavitrika и proxy_cache_valid. Andeha hojerentsika ny ohatra asehontsika. Izany no mitranga rehefa tsy mavitrika=7d и proxy_cache_valid 90d:

  • raha tsy averina ao anatin'ny 7 andro ny fangatahana dia ho voafafa amin'ny cache ny angon-drakitra aorian'io fe-potoana io
  • raha averina indray mandeha isaky ny 7 andro ny fangatahana, dia hoheverina ho lany andro ny angon-drakitra ao amin'ny cache rehefa afaka 90 andro ary miaraka amin'ny fangatahana manaraka dia hanavao azy i Nginx, haka azy amin'ny mpizara tany am-boalohany.

Rehefa vita ny fanitsiana nginx.conf, avereno amboary ny fandrindrana:

root@cdn:~# service nginx reload

Efa vonona tanteraka ny CDN-nay. Ho an'ny $ 15 / volana. nahazo toerana fanatrehana tany amin'ny kaontinanta telo sy fifamoivoizana 3 TB izahay: 1 TB isaky ny toerana.

Fanamarinana ny fiasan'ny CDN

Andeha hojerentsika ny pings amin'ny CDN avy amin'ny toerana ara-jeografika samihafa. Ny serivisy ping rehetra dia mety amin'izany.

teboka fanombohana
miaramila
IP
Fotoana salan'isa, ms

Alemaina Berlin
cdn.sayt.in
199.247.18.199
9.6

Netherlands, Amsterdam
cdn.sayt.in
199.247.18.199
10.1

France Paris
cdn.sayt.in
199.247.18.199
16.3

Grande-Bretagne, Londres
cdn.sayt.in
199.247.18.199
14.9

Canada, Toronto
cdn.sayt.in
149.28.121.123
16.2

Etazonia, San Francisco
cdn.sayt.in
149.28.121.123
52.7

USA, Dallas
cdn.sayt.in
149.28.121.123
23.1

Etazonia, Chicago
cdn.sayt.in
149.28.121.123
2.6

USA, NY
cdn.sayt.in
149.28.121.123
19.8

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

Japana Tokyo
cdn.sayt.in
157.230.240.216
74.8

Aostralia, Sydney
cdn.sayt.in
157.230.240.216
95.9

Tsara ny vokatra. Andeha isika hametraka sary fitsapana eo amin'ny fototry ny tranokala lehibe test.jpg ary jereo ny hafainganam-pandehan'ny fampidinana amin'ny CDN. Voalaza fa- nanao. Aterina haingana ny votoaty.

Andeha hanoratra script kely isika raha te hanadio ny cache amin'ny teboka 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

Raha hamafa ny cache manontolo dia mandehana fotsiny izy io; azonao atao ny mamafa rakitra iray toy izao:

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

Raha tokony ho fehin-kevitra

Farany, te-hanome torohevitra mahasoa aho mba hanitsaka avy hatrany ilay rake izay narary andoha:

  • Mba hampitomboana ny fandeferana amin'ny lesoka CDN, dia asaina manamboatra DNS Failover, izay manampy amin'ny fanovana haingana ny rakitra A raha sendra ny tsy fahombiazan'ny server. Izany dia atao ao amin'ny sehatra fanaraha-maso ny rakitra DNS
  • Tsy isalasalana fa mitaky teboka CDN marobe ireo tranonkala manana faritra malalaka, saingy aoka isika tsy ho fanatika. Azo inoana fa tsy hahatsikaritra fahasamihafana lehibe ny mpampiasa raha oharina amin'ny CDN karamaina raha mametraka mpizara amin'ny toerana 6-7 ianao: Eoropa, Amerika Avaratra (atsinanana), Amerika Avaratra (andrefana), Singapore, Australia, Hong Kong na Japana
  • Indraindray ny mpampiantrano dia tsy mamela ny fampiasana server hofaina ho an'ny tanjona CDN. Noho izany, raha manapa-kevitra tampoka ny hametraka tambajotra fanaterana votoaty ho serivisy ianao, aza adino ny mamaky mialoha ny fitsipiky ny mpamatsy fampiantranoana manokana anao.
  • hijery sarintany fifandraisana anaty ranoalaivo sary an-tsaina ny fomba ifandraisan'ireo kaontinanta ary raisina an-tsaina izany rehefa manangana tambajotra fanaterana votoaty
  • Andramo manamarina pings avy amin'ny toerana samihafa amin'ny mpizara anao. Amin'izany fomba izany dia afaka mahita ny faritra akaiky indrindra amin'ny teboka CDN ianao ary manitsy tsara kokoa ny GeoDNS
  • Miankina amin'ny asa, ilaina ny mampifanaraka an'i Nginx amin'ny fepetra takian'ny caching manokana ary mandinika ny entana ao amin'ny server. Ny lahatsoratra momba ny cache Nginx dia nanampy ahy betsaka tamin'izany - eto sy ny fanafainganana ny asa eo ambany enta-mavesatra: eto и eto

Source: www.habr.com