Fausia ma fa'atulaga lau CDN

O feso'ota'iga tu'uina atu mea (CDNs) o lo'o fa'aogaina e 'upega tafa'ilagi ma fa'aoga fa'amuamua e fa'avave ai le utaina o elemene fa'amau. E tupu lenei mea e ala i le teuina o faila i luga o sapalai CDN o loʻo i totonu o itulagi faʻafanua eseese. I le talosagaina o faʻamatalaga e ala i le CDN, e maua e le tagata faʻaoga mai le server lata ane.

O le fa'atinoga ma le fa'atinoga o feso'ota'iga tu'uina atu o anotusi e fa'atusa tutusa. O le mauaina o se talosaga e sii mai ai se faila, e ave e le server CDN tasi le taimi mai le uluai server ma tuʻuina atu i le tagata faʻaoga, i le taimi lava e tasi e teu ai mo se taimi faʻapitoa. O talosaga uma mulimuli ane e tali mai le cache. O CDN uma e iai filifiliga mo le faʻapipiʻiina o faila, faʻamalo le cache, setiina le faʻamutaina o le cache, ma sili atu.

E tupu ona o se tasi mafuaaga poʻo se isi e manaʻomia ai le faʻatulagaina o lau lava fesoʻotaʻiga tuʻuina atu o mea, ona - talosia ia fesoasoani ia i matou faatonuga mo le faʻapipiʻiina o le isi uila.

Fausia ma fa'atulaga lau CDN
puna: Infographic vector na faia e pikisuperstar — www.freepik.com

O afea e te manaʻomia ai lau lava CDN?

Seʻi o tatou vaʻavaʻai i mataupu e faʻaogaina ai lau lava CDN:

  • pe a e manaʻo e teu tupe, ma tau faʻaalu e tusa lava pe faʻaaoga CDN taugofie pei BunnyCDN e fia selau tala i le masina
  • pe afai tatou te mananaʻo e maua se faʻaoga tumau poʻo se faʻaoga e aunoa ma ni tuaoi i luga o le server ma le alalaupapa
  • 'Au'aunaga a le CDN e leai ni fa'ailoga i le itulagi e te mana'omia
  • So'o se fa'atulagaga fa'apitoa e tu'uina atu mea e mana'omia
  • matou te mananaʻo e faʻavavevave le tuʻuina atu o mea faʻamalosi e ala i le tuʻuina atu o sapalai gaosiga latalata i tagata faʻaoga
  • o lo'o i ai le atugaluga e ono le'o aoina pe fa'aoga e se isi vaega CDN fa'amatalaga e uiga i amioga a tagata fa'aoga (talofa i au'aunaga e le o tausisia le GDPR) po'o le auai i isi gaioiga fa'asolitulafono.

I le tele o isi tulaga, e sili atu ona talafeagai le faʻaogaina o fofo ua saunia.

Le mea e te manaʻomia e amata ai

E manaia tele pe afai e iai sau lava faiga tuto'atasi (AS). Faatasi ai ma ia e mafai ona e tuʻuina atu le IP tutusa i le tele o sapalai ma e tusa ai ma lenei faatonuga i le tulaga o fesoʻotaʻiga, faʻatonu tagata faʻaoga i le mea lata ane. E taua le fai atu e tusa lava pe i ai se poloka tuatusi / 24 e mafai ona fausia se fesoʻotaʻiga tuʻuina atu mea. O nisi 'au'aunaga tu'uina atu e fa'atagaina oe e fa'asalalau mo le fa'aoga i itu uma o lo'o avanoa mo i latou.

Afai e le o oe o le laki e ona se poloka o tuatusi IP, ona faʻalauiloa lea o se CDN faigofie e te manaʻomia:

  • igoa ole igoa po'o le subdomain
  • a itiiti ifo ma le lua 'auʻaunaga i itulagi eseese. O le 'au'aunaga e mafai ona tu'ufa'atasia po'o fa'amasani
  • meafaigaluega geoDNS. Faatasi ai ma lana fesoasoani, o se tagata faʻaoga e faʻaogaina se vaega o le a faʻasino atu i le server lata ane

Resitala se vaega ma oka sa'u

Faatasi ai ma le resitalaina o le domain, e faigofie mea uma - matou te lesitala i soʻo se sone ma soʻo se resitara. E mafai foʻi ona e faʻaogaina se subdomain mo le CDN, mo se faʻataʻitaʻiga cdn.domainname.com. O le mea moni, i la tatou faataitaiga o le a tatou faia na o lena.

Ae mo le faʻatonuina o 'auʻaunaga, e tatau ona mautotogi i itulagi ma atunuʻu o loʻo iai lau au faʻaoga. Afai o le poloketi o le intercontinental, ona faigofie lea ona filifili tagata e tuʻuina atu faʻasalalauga e ofoina atu faʻaumau i le lalolagi atoa. Faataitaiga: OVH, lisi upegatafa'ilagi и 100TB - mo 'au'aunaga tuuto, Vultr и DigitalOcean — mo ao ata*.

Mo a matou CDN tumaoti, matou te okaina 3 virtual servers i konetineta eseese. U Vultr i luga o le server mo $5/masina matou te maua 25GB SSD nofoaga ma 1TB feoaiga. I le taimi faʻapipiʻi, matou te filifilia le Debian lata mai. O matou 'au'aunaga:

Fausia ma fa'atulaga lau CDN Frankfurt, ip: 199.247.18.199

Fausia ma fa'atulaga lau CDN Sikako, ip: 149.28.121.123

Fausia ma fa'atulaga lau CDN Сингапур, ip: 157.230.240.216

*Vultr ma DigitalOcean o loʻo folafola atu le $100 faʻaaitalafu i tagata faʻaoga o loʻo sainia e faʻaaoga sootaga i lenei tusiga pe a latou faʻaopoopoina se auala totogi. E maua foi e le tusitala sina faamalo mai lenei mea, lea e matua taua tele mo ia i le taimi nei. Faamolemole ia malamalama.

Faʻatulagaina geoDNS

Ina ia faʻamautinoa pe a faʻaogaina e se tagata faʻaoga se CDN domain poʻo se subdomain, e faʻatonuina o ia i le manaʻomia (latalata) server, matou te manaʻomia se DNS server ma le geoDNS galuega.

O le faʻavae ma le faʻaogaina o le geoDNS e faʻapea:

  1. Fa'amatala le IP o le kalani na auina atu le talosaga DNS, poʻo le IP o le DNS server recursive lea e faʻaaogaina pe a faʻaogaina le talosaga a le tagata o tausia. O ia 'au'aunaga recursive e masani lava ona tu'uina atu DNS.
  2. O le IP a le kalani e iloa ai lona atunuu po'o le itulagi. Mo lenei mea, o loʻo faʻaaogaina faʻamaumauga GeoIP, lea e tele naua i aso nei. E iai ni mea lelei filifiliga saoloto.
  3. Faʻalagolago i le nofoaga o le kalani, e tuʻuina atu i ai le tuatusi IP o le server CDN lata ane.

DNS server ma geoDNS galuega e mafai ona fa'apotopoto oe lava, ae sili atu le faʻaogaina o fofo ua saunia ma se fesoʻotaʻiga o DNS servers i le lalolagi atoa ma Anycast mai le pusa:

  • CloudDNS от $9.95/masina, GeoDNS tariff, ona o le faaletonu e tasi le DNS Failover
  • Zilore от $25/masina, DNS Failover ua mafai
  • Ala Amazon 53 от $35/masina mo mama 50M geo-queries. DNS Failover e totogi eseese
  • DNS Fa'afaigofie от $125/masina, e 10 DNS Failovers
  • Cloudflare, o le galuega "Geo Steering" o loʻo maua i tau pisinisi

Pe a faʻatonu geoDNS, e tatau ona e gauai atu i le numera o talosaga o loʻo aofia i totonu o le tau ma ia manatua o le numera moni o talosaga i le vaega atonu e tele taimi e sili atu nai lo le faʻamoemoeina. E faitau miliona apogaleveleve, scanners, spammers ma isi agaga leaga e galulue ma le le vaivai.

Toeitiiti lava o auaunaga DNS uma e aofia ai i le tau o se auaunaga taua mo le fausiaina o se CDN - DNS Failover. Faatasi ai ma lana fesoasoani, e mafai ona e setiina le mataʻituina o le faʻaogaina o au 'auʻaunaga ma, afai e leai ni faʻailoga o le ola, otometi ona sui le tuatusi o le server e le o galue i tali DNS ma se faʻamaumauga.

Ina ia fausia la matou CDN matou te faʻaaogaina FUAFUAGA, GeoDNS tau.

Se'i fa'aopoopo se sone DNS fou i lau fa'amatalaga patino, e fa'ailoa ai lau vaega. Afai o loʻo matou fausiaina se CDN i luga o se subdomain, ma o loʻo faʻaaogaina le vaega autu, ona maeʻa loa lea ona faʻaopoopo le sone, aua neʻi galo e faʻaopoopo faʻamaumauga DNS o loʻo i ai nei. O le isi laasaga o le fatuina lea o ni A-faamaumauga mo le CDN domain / subdomain, o ia mea taitasi o le a faʻaaogaina mo le itulagi ua matou faʻamaonia. E mafai ona e faʻamaonia konetineta poʻo atunuʻu e fai ma itulagi; subregions e avanoa mo Amerika ma Kanata.

I la matou tulaga, o le CDN o le a siitia i luga o se subdomain cdn.sayt.in. I le fa'aopoopoina o se sone sayt.in, tatou fatuina le uluai A-faamaumauga mo le subdomain ma faʻatonu uma Amerika i Matu i le 'auʻaunaga i Chicago:

Fausia ma fa'atulaga lau CDN
Sei o tatou toe faia le gaioiga mo isi itulagi, aua neʻi galo e fai se faʻamatalaga se tasi mo itulagi le lelei. O mea nei e te maua i le iuga:

Fausia ma fa'atulaga lau CDN

O le fa'ailoga fa'aletonu mulimuli i le fa'amalama o lona uiga o itulagi uma e le'i fa'ailoaina (ma o Europa, Aferika, satelite fa'aoga Initaneti, ma isi) o le a lafo i le 'au'aunaga i Frankfurt.

Ua mae'a le seti DNS faavae. Pau lava le mea o loʻo totoe o le alu i le upega tafaʻilagi a le resitala ma sui le NSs o loʻo iai nei ma na tuʻuina atu e ClouDNS. Ma a'o fa'afouina NS, o le a matou saunia 'au'aunaga.

Fa'apipi'i tusi faamaonia SSL

O la matou CDN o le a galue i luga o le HTTPS, o lea afai ua i ai sau tusi faamaonia SSL mo se vaega poʻo se subdomain, faʻapipiʻi i latou uma, mo se faʻataʻitaʻiga i le lisi /etc/ssl/yourdomain/

Afai e leai sau tusi pasi, e mafai ona e maua sau tusipasi fua mai le Let's Encrypt. Lelei mo lenei ACME Shell tusitusiga. O le kalani e faigofie ma faigofie ona faʻapipiʻi, ma sili ona taua, e mafai ai ona e faʻamaonia se vaega / subdomain e faʻaaoga ai DNS e ala i le API mai le ClouDNS.

O le a matou faʻapipiʻi le acme.sh i luga o le tasi o sapalai - Europa 199.247.18.199, lea o le a kopiina ai tusi pasi i isi uma. Ina ia fa'apipi'i, fai:

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

I le taimi o le faʻapipiʻiina o le tusitusiga, o le a faia se galuega CRON mo le toe faʻafouina o tusi pasi e aunoa ma lo tatou auai.

Domain verification pe a tuʻuina atu se tusi faamaonia o le a faia e ala i DNS e faʻaaoga ai le API, o lea i lau ClouDNS faʻamatalaga patino i le Reseller API menu e te manaʻomia le fatuina o se tagata API fou ma seti se faʻaupuga mo ia. O le a matou tusia le auth-id e maua ma upu faʻamaonia i totonu o se faila ~/.acme.sh/dnsapi/dns_cloudns.sh (aua le fenumiai ma le faila dns_clouddns.sh). O laina nei e mana'omia ona le fa'ailoa ma fa'asa'o:

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

Sei o tatou talosagaina se tusi faamaonia SSL mo cdn.sayt.in

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

I faʻamaufaʻailoga, mo le lumanaʻi, matou te faʻamaonia se faʻatonuga e otometi ona toe faʻapipiʻi le faʻaogaina o le upega tafaʻilagi pe a uma le faʻafouina o tusi faamaonia i le lumanaʻi.

O le faagasologa atoa o le mauaina o se tusi faamaonia e mafai ona oʻo i le 2 minute, aua le faʻalavelaveina. Afai e tupu se mea sese ile fa'amaoniaga ole domain, taumafai e toe fa'atino le fa'atonuga. I le faaiuga o le a tatou vaʻai poʻo fea na sii mai ai tusi faamaonia:

Fausia ma fa'atulaga lau CDN

Sei o tatou manatua nei auala; latou te manaʻomia ona faʻamaonia pe a kopiina le tusi faamaonia i isi 'auʻaunaga, faʻapea foʻi ma le upega tafaʻilagi. Matou te le gauai atu i le sese o le toe faʻaleleia o Nginx configs - i luga o se faʻaumau atoatoa, e le faʻaalia pe a faʻafouina tusi faamaonia.

Pau lava le mea e totoe mo i matou i le SSL o le kopiina o le tusi faamaonia na maua i isi 'auʻaunaga e lua, faʻasaoina le ala i faila. Sei o tatou faia ia lava tusitaiala i luga o ia mea taitasi ma fai se kopi:

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/

Ina ia faʻafouina tusi pasi i taimi uma, matou te faia se galuega CRON i aso uma i luga o sapalai uma e lua ma le faʻatonuga:

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

I lenei tulaga, e tatau ona faʻapipiʻi le avanoa i le server puna mamao e ala i le ki, i.e. e aunoa ma le ulufale i se upu faataga. Aua nei galo e fai le mea lea.

Faʻapipiʻi ma faʻapipiʻi Nginx

Ina ia tuʻuina atu mea faʻapitoa, matou te faʻaogaina le Nginx faʻatulagaina e avea o se faʻaumau sui sui. Sei o tatou faʻafouina lisi o afifi ma faʻapipiʻi i luga o sapalai uma e tolu:

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

Nai lo le faaletonu, matou te faʻaogaina le config mai le spoiler i lalo:
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;
    }
  }
}

I le config matou te faʻasaʻo:

  • max_size - le tele o le cache e le sili atu i le avanoa disk avanoa
  • le toaga - taimi e teu ai mo faʻamatalaga natia e leʻi mauaina
  • ssl_certificate и ssl_certificate_key - ala i le SSL tusi faamaonia ma faila autu
  • proxy_cache_valid - taimi teuina o faʻamaumauga faʻapipiʻi
  • sui_pasi - le tuatusi o le uluai server lea o le a talosagaina ai e le CDN faila mo le faʻaogaina. I la tatou faataitaiga o le sayt.in

E pei ona e vaʻai, e faigofie mea uma. Pau lava le faigata e ono tula'i mai i le setiina o le taimi e teu ai ona o le tutusa o faatonuga le toaga и proxy_cache_valid. Sei o tatou vaai ia i latou e faaaoga ai la tatou faataitaiga. O le mea lea e tupu pe a le toaga=7d и proxy_cache_valid 90d:

  • afai e le toe faia le talosaga i totonu ole 7 aso, o le a tapeina faʻamaumauga mai le faʻaoga pe a maeʻa lenei vaitau
  • afai e toe fai le talosaga ia le itiiti ifo ma le tasi i aso uma 7, ona manatu lea o faʻamaumauga i totonu o le cache o le a le toe aoga pe a uma le 90 aso ma le isi talosaga o le a faʻafouina e Nginx, ave mai le uluai server.

Ua uma ona fa'asa'o nginx.conf, toe fa'ae'e le fa'atulagaga:

root@cdn:~# service nginx reload

Ua saunia atoatoa le matou CDN. Mo le $15/masina. na matou mauaina ni vaega o le auai i konetineta e tolu ma le 3 TB o feoaiga: 1 TB i nofoaga taitasi.

Siaki le faagaoioiga o le CDN

Sei o tatou tilotilo i pings i la tatou CDN mai nofoaga eseese fa'afanua. So'o se auaunaga ping e talafeagai mo lea.

Vaega amata
Talimalo
IP
Taimi masani, ms

Siamani Perelini
cdn.sayt.in
199.247.18.199
9.6

Netherlands, Amsterdam
cdn.sayt.in
199.247.18.199
10.1

Farani Paris
cdn.sayt.in
199.247.18.199
16.3

Peretania Tele, Lonetona
cdn.sayt.in
199.247.18.199
14.9

Kanata, Toronto
cdn.sayt.in
149.28.121.123
16.2

ISA, San Francisco
cdn.sayt.in
149.28.121.123
52.7

ISA, Dallas
cdn.sayt.in
149.28.121.123
23.1

ISA, Chicago
cdn.sayt.in
149.28.121.123
2.6

ISA, Niu Ioka
cdn.sayt.in
149.28.121.123
19.8

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

Iapani Tokyo
cdn.sayt.in
157.230.240.216
74.8

Ausetalia, Sini
cdn.sayt.in
157.230.240.216
95.9

E lelei taunuuga. Sei o tatou tuʻuina se ata faataitai i le aʻa o le nofoaga autu test.jpg ma siaki lona saoasaoa download e ala i le CDN. Fai mai- faia. E vave ona momoli atu anotusi.

Sei o tatou tusia se tamai tusitusiga i le tulaga tatou te mananaʻo e faʻamama le cache ile CDN point.
faamama.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

Ina ia tape le cache atoa, naʻo le taʻavale; e mafai ona e faʻamama se faila ese e pei o lenei:

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

Ae le o faaiuga

Ma le mea mulimuli, ou te manaʻo e tuʻuina atu ni fautuaga aoga ina ia vave ona laa i luga o le rake lea na ou maua ai le tiga o le ulu:

  • Ina ia faʻateleina le faʻapalepale o le CDN, e fautuaina e faʻapipiʻi le DNS Failover, lea e fesoasoani e vave suia le A faʻamaumauga i le tulaga o le toilalo o le server. E faia lenei mea ile vaega ole DNS fa'amaufa'ailoga e pulea fa'amaumauga
  • O nofoaga e lautele le o'o atu i le fa'afanua e mautinoa lava e mana'omia ai se numera tele o togi CDN, ae 'aua ne'i fa'atauva'a. E foliga mai, o le a le matauina e le tagata faʻaoga se eseesega tele pe a faʻatusatusa i se CDN totogi pe afai e te tuʻuina sapalai i nofoaga 6-7: Europa, Amerika i Matu (sasaʻe), Amerika i Matu (sisifo), Sigapoa, Ausetalia, Hong Kong poʻo Iapani.
  • O nisi taimi e le fa'atagaina e le au talimalo le fa'aogaina o 'au'aunaga mautotogi mo fa'amoemoega CDN. O le mea lea, afai e te faʻafuaseʻi ona filifili e faʻapipiʻi se fesoʻotaʻiga tuʻuina atu o mea e fai ma auʻaunaga, aua neʻi galo e faitau muamua tulafono a lau kamupani talimalo faʻapitoa.
  • Sailiili fa'afanua feso'ota'iga i lalo o le samie mafaufau pe faʻafefea ona fesoʻotaʻi konetineta ma faʻaogaina lenei mea pe a fausia se fesoʻotaʻiga tuʻuina atu mea
  • Taumafai e siaki pings mai nofoaga eseese i au 'au'aunaga. O le auala lea e mafai ai ona e vaʻai i itulagi pito lata ane i CDN ma faʻapipiʻi saʻo le GeoDNS
  • Faʻalagolago i galuega, o le a aoga le faʻavasegaina o Nginx mo manaʻoga faʻapitoa faʻapipiʻi ma amanaʻia le uta i luga o le 'auʻaunaga. O tala e uiga i Nginx cache na fesoasoani tele ia te aʻu i lenei mea - iinei ma le saoasaoa o galuega i lalo o avega mamafa: iinei и iinei

puna: www.habr.com