Te kohikohi me te whakarite i to CDN

Ko nga whatunga tuku ihirangi (CDNs) e whakamahia ana e nga paetukutuku me nga tono kia tere ake te utaina o nga huānga pateko. Ka tupu tenei ma te keteroki i nga konae kei runga i nga tūmau CDN kei ​​nga rohe matawhenua rereke. Ma te tono raraunga ma te CDN, ka whiwhi te kaiwhakamahi mai i te tūmau tata.

He rite tonu te kaupapa whakahaere me te mahi o nga whatunga tuku ihirangi katoa. I te whiwhi tono ki te tango i tetahi konae, ka tangohia e te tūmau CDN kia kotahi te wa mai i te tūmau taketake ka hoatu ki te kaiwhakamahi, i te wa ano ka keteroki mo te waa kua tohua. Ka whakautua nga tono katoa mai i te keteroki. Kei nga CDN katoa nga whiringa mo te uta i nga konae, te whakakore i te keteroki, te whakarite i te paunga keteroki, me te maha atu.

Ko te mea mo tetahi take he mea tika ki te whakarite i a koe ake whatunga tuku ihirangi, katahi - ma nga tohutohu mo te whakahiato i te pahikara e whai ake nei hei awhina i a maatau.

Te kohikohi me te whakarite i to CDN
Source: Vector infographic na pikisuperstar — www.freepik.com

Ahea e hiahia ana koe i to ake CDN?

Me titiro ki nga keehi e whai tikanga ana te whakahaere i to ake CDN:

  • ina hiahia koe ki te penapena moni, me nga utu whakahaere ahakoa te whakamahi i nga CDN ngawari penei BunnyCDN e hia rau taara ia marama
  • ki te hiahia tatou ki te tiki keteroki pumau, he keteroki ranei kaore he hoa tata ki runga i te tūmau me te hongere
  • Ko nga ratonga CDN kaore he waahi ki te rohe e hiahia ana koe
  • Ko nga whakaritenga tuku ihirangi motuhake e hiahiatia ana
  • e hiahia ana matou ki te tere ake te tuku i nga ihirangi hihiri ma te whakanoho i nga kaitoro whakangao kia tata atu ki nga kaiwhakamahi
  • he āwangawanga kei te kohi hē, kei te whakamahi hē ranei te ratonga CDN tuatoru mo te whanonga kaiwhakamahi (kia ora ki nga ratonga kore-GDPR-ture) ka uru ranei ki etahi atu mahi ture.

I te nuinga o nga keehi, he pai ake te whakamahi i nga rongoa kua oti te hanga.

He aha e hiahia ana koe ki te timata

He mea whakamiharo mena kei a koe ano to punaha motuhake (AS). Ma te reira ka taea e koe te tautapa i te IP kotahi ki te maha o nga tūmau me te kia rite ki enei tohutohu i te taumata whatunga, whakatika nga kaiwhakamahi ki te mea tata. He pai ki te kii ahakoa he poraka wahitau /24 ka taea te hanga i tetahi whatunga tuku ihirangi. Ko etahi o nga kaiwhakarato tūmau ka taea e koe te panui mo te whakamahi i nga rohe katoa e waatea ana ki a raatau.

Mena ehara koe i te rangatira rangatira o te poraka o nga wahitau IP, na ki te whakarewa i tetahi CDN ngawari ka hiahia koe:

  • ingoa rohe, roheroto ranei
  • kia rua nga kaitoro i nga rohe rereke. Ka taea e te tūmau te whakatapua, te mariko ranei
  • taputapu geoDNS. Ma tana awhina, ka tukuna he kaiwhakamahi e uru ana ki tetahi rohe ki te tūmau tata

Rēhitatia he rohe ka tono i nga tūmau

Ma te rehitatanga rohe, he ngawari nga mea katoa - ka rehita matou ki tetahi rohe me tetahi kairēhita. Ka taea hoki e koe te whakamahi i te subdomain mo te CDN, hei tauira penei cdn.domainname.com. Inaha, i roto i to tatou hi'oraa, e na reira tatou.

Mo te tono i nga kaitoro, me reti ratou ki nga rohe me nga whenua kei reira to hunga whakarongo. Mena kei roto te kaupapa, he pai ki te whiriwhiri i nga kaiwhakarato manaaki e tuku ana i nga kaitoro puta noa i te ao. Tauira: OVH, Tukutuku riihi и 100Tb - mo nga kaitoro whakatapua, Tuhinga и DigitalOcean — mo te kapua mariko*.

Mo ta maatau CDN motuhake, ka ota e 3 nga kaitoro mariko ki nga whenua rereke. U Tuhinga i runga i te tūmau mo $5/marama ka whiwhi tatou 25GB SSD nga waahi me 1TB hokohoko. I te wa o te whakaurunga, ka tohua e matou te Debian hou. To tatou tūmau:

Te kohikohi me te whakarite i to CDN Frankfurt, ip: 199.247.18.199

Te kohikohi me te whakarite i to CDN Chicago, ip: 149.28.121.123

Te kohikohi me te whakarite i to CDN Сингапур, ip: 157.230.240.216

*Kei te oati a Vultr me DigitalOcean i te $100 hei nama ki nga kaiwhakamahi ka haina ma te whakamahi i nga hononga o tenei tuhinga ina taapirihia he tikanga utu. Ka whakawhiwhia ano e te kaituhi tetahi mihi iti mai i tenei, he mea tino nui ki a ia inaianei. Tena koa kia marama.

Te whakatu geoDNS

Kia mohio ai ka uru te kaiwhakamahi ki te rohe CDN, ki te rohe-roto ranei, ka tukuna ia ki te tūmau e hiahiatia ana (tino tata), ka hiahia matou ki tetahi tūmau DNS me te mahi geoDNS.

Ko te kaupapa me te tikanga whakahaere o te geoDNS e whai ake nei:

  1. Ka tautuhi i te IP o te kiritaki nana i tuku te tono DNS, i te IP ranei o te tūmau DNS recursive e whakamahia ana i te tukatuka i te tono a te kiritaki. Ko nga kaiwhakarato recursive ko te nuinga o nga kaiwhakarato DNS.
  2. Ko te IP o te kiritaki e tohu ana i tona whenua, rohe ranei. Mo tenei, ka whakamahia nga papaa raraunga GeoIP, he maha nga mea i enei ra. He pai etahi kōwhiringa kore utu.
  3. I runga i te waahi o te kiritaki, ka hoatu e ia te wahitau IP o te tūmau CDN tata.

Ka taea e te tūmau DNS me te mahi geoDNS huihuia koe, engari he pai ake te whakamahi i nga otinga kua oti te hanga me te whatunga o nga kaiwhakarato DNS huri noa i te ao me te Panui mai i te pouaka:

  • CloudDNS i $9.95/marama, GeoDNS utu, na roto i te taunoa he kotahi DNS Failover
  • Tirore i $25/marama, DNS Failover whakahohea
  • Ara Amazon 53 i $35/marama mo te 50M nga uiui geo-parakore. Ko DNS Failover he utu motuhake
  • He ngawari te DNS i $125/marama, kei reira 10 DNS Failovers
  • Cloudflare, kei te waatea te mahi "Geo Steering" i roto i nga reeti Enterprise

I te wa e tono ana koe i te geoDNS, me aro koe ki te maha o nga tono kua whakauruhia ki roto i te utu me te whakaaro ko te maha tonu o nga tono ki te rohe he maha nga wa teitei ake i te tumanako. E hia miriona pūngāwerewere, matawai, spammers me etahi atu wairua kino e mahi ana ma te ngoikore.

Tata ki nga ratonga DNS katoa kei roto i te utu he ratonga tino nui mo te hanga CDN - DNS Failover. Ma tana awhina, ka taea e koe te whakarite i te aro turuki i nga mahi o o kaimau, a, ki te kore he tohu o te ora, whakakapi aunoa i te wahitau o te tūmau kore mahi i roto i nga whakautu DNS me tetahi taapiri.

Hei hanga i to maatau CDN ka whakamahia e matou Tuhinga o mua, utu GeoDNS.

Me taapiri he rohe DNS hou ki to putea whaiaro, e tohu ana i to rohe. Mena kei te hangahia e matou he CDN i runga i te subdomain, a kua whakamahia kee te rohe matua, katahi ano i muri tonu i te taapiri i te rohe, kaua e wareware ki te taapiri i nga rekoata DNS mahi. Ko te mahi e whai ake nei ko te hanga i etahi A-rekoata mo te rohe CDN/subdomain, ka whakamahia ia mo te rohe kua tohua e matou. Ka taea e koe te tohu whenua, whenua ranei hei rohe; kei te waatea nga rohe iti mo te USA me Kanata.

I roto i to maatau, ka whakaarahia te CDN i runga i te rohe-roto cdn.sayt.in. Ma te taapiri i tetahi rohe sayt.in, me hanga e tatou te rekoata A tuatahi mo te subdomain me te arahi katoa o Amerika Te Tai Tokerau ki te tūmau i Chicago:

Te kohikohi me te whakarite i to CDN
Me whakahoki ano te mahi mo etahi atu rohe, kaua e wareware ki te hanga i tetahi urunga mo nga rohe taunoa. Anei nga mea ka whiwhi koe i te mutunga:

Te kohikohi me te whakarite i to CDN

Ko te urunga taunoa whakamutunga i roto i te Whakaahuamata ko te tikanga ka tukuna nga rohe katoa kaore i tohua (ko enei ko Uropi, Awherika, nga kaiwhakamahi Ipurangi amiorangi, me etahi atu) ka tukuna ki te tūmau i Frankfurt.

Ka whakaoti tenei i te tatūnga DNS taketake. Ko nga mea katoa e toe ana ko te haere ki te paetukutuku a te kairēhita rohe me te whakakapi i nga NS rohe o naianei me era i tukuna e ClouDNS. A, i te wa e whakahouhia ana nga NS, ka whakarite matou i nga kaitoro.

Te whakauru i nga tiwhikete SSL

Ka mahi to tatou CDN i runga i te HTTPS, na mena kei a koe nga tiwhikete SSL mo tetahi rohe, rohe-roto ranei, tuku atu ki nga kaitoro katoa, hei tauira ki te raarangi. /etc/ssl/yourdomain/

Mena karekau he tiwhikete, ka taea e koe te tiki tiwhikete kore utu mai i Let's Encrypt. Tino pai mo tenei Tuhinga ACME Shell. He watea, he ngawari hoki te whirihora o te kiritaki, a ko te mea nui, ka taea e koe te whakamana i tetahi rohe/subdomain ma te whakamahi i te DNS ma te API mai i a ClouDNS.

Ka whakauruhia e matou te acme.sh ki runga i tetahi o nga kaitoro - Pakeha 199.247.18.199, ka kapehia nga tiwhikete ki etahi atu. Hei tāuta, mahia:

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

I te wa o te whakaurunga o te tuhinga, ka hangaia he mahi CRON hei whakahou ake i nga tiwhikete me te kore e uru mai.

Ko te manatoko rohe ka tukuna he tiwhikete ka mahia ma te DNS ma te whakamahi i te API, na i roto i to putea whaiaro a ClouDNS i te tahua Kaihokohoko API me hanga e koe he kaiwhakamahi API hou me te tautuhi i tetahi kupuhipa mo taua mea. Ka tuhia e matou te hua-tautuhinga me te kupuhipa ki roto i te konae ~/.acme.sh/dnsapi/dns_cloudns.sh (kaua e pohehe ki te konae dns_clouddns.sh). Anei nga rarangi e tika ana kia kore te korero me te whakatika:

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

Inaianei me tono he tiwhikete SSL mo cdn.sayt.in

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

I roto i nga tawhā, mo nga ra kei te heke mai, i tohua e matou he whakahau ki te whakahou aunoa i te whirihoranga tūmau tukutuku i muri i ia whakahou mana tiwhikete a muri ake nei.

Ko te tukanga katoa mo te whiwhi tiwhikete ka roa pea ki te 2 meneti, kaua e pokanoa. Mena ka puta he hapa whakamanatanga rohe, ngana ki te whakahaere ano i te tono. I te mutunga ka kite tatou i te wahi i tangohia ai nga tiwhikete:

Te kohikohi me te whakarite i to CDN

Kia maumahara tatou ki enei huarahi, me tohu i te wa e kape ana i te tiwhikete ki etahi atu tūmau, tae atu ki nga tautuhinga tūmau tukutuku. Kaore matou e aro ki te hapa o te whakahou ano i nga whirihora Nginx - i runga i te tūmau kua oti te whakarite, kaore e puta mai i te wa e whakahou ana i nga tiwhikete.

Ko nga mea katoa e toe ana mo matou me SSL ko te kape i te tiwhikete kua riro ki etahi atu tūmau e rua, me te tiaki i te huarahi ki nga konae. Me hanga e tatou nga whaiaronga kotahi ki runga ki ia o ratou ka hanga he kape:

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/

Hei whakahou i nga tiwhikete i nga wa katoa, ka hangaia e matou he mahi CRON ia ra i runga i nga tūmau e rua me te whakahau:

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

I tenei take, me whirihora te uru ki te tūmau puna mamao mā te kī, i.e. me te kore e whakauru kupuhipa. Kaua e wareware ki te mahi i tenei.

Te whakauru me te whirihora Nginx

Hei mahi i nga ihirangi pateko, ka whakamahia e matou a Nginx kua whirihorahia hei tūmau takawaenga keteroki. Me whakahōu i ngā rārangi mōkihi ka tāuta ki runga i ngā tūmau e toru:

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

Engari i te taunoa, ka whakamahia e matou te whirihora mai i te kaipahua i raro nei:
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 roto i te whirihora ka whakatikahia e matou:

  • nui_rahi — te rahi keteroki kaua e neke ake i te mokowā kōpae e waatea ana
  • koretake — te wa rokiroki mo nga raraunga keteroki kaore ano kia uru atu
  • ssl_tiwhikete и ssl_certificate_key — ara ki te tiwhikete SSL me nga konae matua
  • takawaenga_keteroki_mana — te wa rokiroki o nga raraunga keteroki
  • takawaenga_pass — te wahitau o te tūmau taketake e tono ai te CDN i nga konae mo te keteroki. I roto i to tatou tauira ko tenei sayt.in

Ka kite koe, he ngawari nga mea katoa. Ko te uaua anake ka ara ake ki te whakarite i te wa keteroki na te rite o nga tohutohu koretake и takawaenga_keteroki_mana. Kia titiro tatou ki a raatau ma te whakamahi i ta tatou tauira. Koinei te mea ka tupu ina hohekore=7d и takawaenga_keteroki_mana 90d:

  • ki te kore e tukuna te tono i roto i nga ra 7, ka mukua nga raraunga mai i te keteroki i muri i tenei waa
  • Mena ka tukuna ano te tono i te iti rawa i nga ra e 7, katahi ka whakaarohia nga raraunga kei roto i te keteroki i muri i nga ra 90 me te tono e whai ake nei ka whakahouhia e Nginx, ka tangohia mai i te tūmau taketake.

Ka mutu te whakatika nginx.conf, utaina ano te whirihoranga:

root@cdn:~# service nginx reload

Kua reri rawa ta matou CDN. Mo te $15/marama. i whiwhi matou i nga waahi i runga i nga whenua e toru me te 3 TB o te hokohoko: 1 TB i ia waahi.

Te tirotiro i te mahi a te CDN

Me titiro ki nga pings ki to tatou CDN mai i nga waahi matawhenua rereke. Ko nga ratonga ping e tika ana mo tenei.

Timatatanga
Kaihautū
IP
Te wa toharite, ms

Tiamana Berlin
cdn.sayt.in
199.247.18.199
9.6

Hōrana, Amsterdam
cdn.sayt.in
199.247.18.199
10.1

Parani Paris
cdn.sayt.in
199.247.18.199
16.3

Great Britain, Rānana
cdn.sayt.in
199.247.18.199
14.9

Kanata, Toronto
cdn.sayt.in
149.28.121.123
16.2

USA, San Francisco
cdn.sayt.in
149.28.121.123
52.7

USA, Dallas
cdn.sayt.in
149.28.121.123
23.1

USA, Chicago
cdn.sayt.in
149.28.121.123
2.6

USA, New York
cdn.sayt.in
149.28.121.123
19.8

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

Japan Tokyo
cdn.sayt.in
157.230.240.216
74.8

Ahitereiria, Poihākena
cdn.sayt.in
157.230.240.216
95.9

He pai nga hua. Inaianei me whakanoho he whakaahua whakamatautau ki te putake o te waahi matua test.jpg ka tirohia tana tere tango ma te CDN. E kiia ana - kua mahia. Ka tere te tuku ihirangi.

Me tuhi he tuhinga iti mena kei te pirangi tatou ki te whakakore i te keteroki i te waahi CDN.
pure.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

Hei muku i te keteroki katoa, rere noa; ka taea e koe te ūkui i tetahi konae motuhake penei:

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

Engari ko nga whakatau

Ka mutu, e hiahia ana ahau ki te hoatu i etahi tohutohu whaihua kia taea ai e koe te eke ki runga ake i te rake i mamae ai ahau i mua:

  • Hei whakanui ake i te ngoikoretanga o te hapa CDN, ka tūtohu kia whirihora i te DNS Failover, e awhina ana ki te whakarereke tere i te rekoata A mena he rahunga te tūmau. Ka mahia tenei i roto i te paewhiri mana rekoata DNS rohe
  • Ko nga waahi whai waahi matawhenua whanui ka tino hiahia kia nui nga tohu CDN, engari kaua tatou e poauau. Ko te mea pea, karekau te kaiwhakamahi e kite i te rereketanga nui ka whakaritea ki te CDN utu mena ka tuu koe i nga kaitoro ki nga waahi 6-7: Europe, Amerika Te Tai Tokerau (rawhiti), Amerika Te Taitokerau (hauauru), Singapore, Ahitereiria, Hong Kong, Japan ranei.
  • I etahi wa karekau nga kaitarai e whakaae ki te whakamahi i nga tuumau riihi mo nga kaupapa CDN. Na, mena ka whakatau koe ki te tuku i tetahi whatunga tuku ihirangi hei ratonga, kaua e wareware ki te panui i nga ture o to kaiwhakarato manaaki motuhake i mua.
  • Torotoro mapi korero i raro i te waiki te whakaaro me pehea te hono o nga whenua me te whakaaro ki tenei i te wa e hanga ana he whatunga tuku ihirangi
  • Ngana ki te tirotiro pings mai i nga waahi rereke ki o tūmau. Ma tenei ka taea e koe te kite i nga rohe e tata ana ki nga tohu CDN me te whirihora tika i a GeoDNS
  • I runga i nga mahi, he pai ki te whakarite i a Nginx mo nga whakaritenga keteroki motuhake me te whai whakaaro ki te utaina i runga i te tūmau. Ko nga tuhinga mo te keteroki Nginx i awhina nui ki ahau ki tenei - konei me te whakatere o te mahi i raro i nga kawenga taumaha: konei и konei

Source: will.com