Hoʻohana ʻia nā ʻupena hoʻolaha maʻiʻo (CDNs) e nā pūnaewele a me nā noi e wikiwiki i ka hoʻouka ʻana i nā mea static. Hana ʻia kēia ma ka hoʻopaʻa ʻana i nā faila ma nā kikowaena CDN aia ma nā ʻāpana ʻāina like ʻole. Ma ke noi ʻana i ka ʻikepili ma o CDN, loaʻa ka mea hoʻohana mai ka kikowaena kokoke loa.
ʻO ke kumu hana a me ka hana o nā ʻupena hoʻolaha ʻike a pau ua like like. I ka loaʻa ʻana o kahi noi e hoʻoiho i kahi faila, lawe ka CDN server iā ia i hoʻokahi manawa mai ka kikowaena kumu a hāʻawi iā ia i ka mea hoʻohana, i ka manawa hoʻokahi e hoʻopaʻa iā ia no kahi manawa i ʻōlelo ʻia. Ua pane ʻia nā noi a pau mai ka cache. Loaʻa i nā CDN nā koho no ka hoʻouka mua ʻana i nā faila, hoʻomaʻemaʻe i ka cache, hoʻonohonoho i ka pau ʻana o ka cache, a ʻoi aku ka nui.
No ke kumu hoʻokahi a i ʻole he mea pono e hoʻonohonoho i kāu pūnaewele hoʻolaha ʻike ponoʻī, a laila - e kōkua paha nā ʻōlelo aʻoaʻo no ka hui ʻana i ke kaʻa aʻe iā mākou.
E nānā kākou i nā hihia i kūpono ai ka holo ʻana i kāu CDN ponoʻī:
i ka wa oe makemake e hoola i ke kala, a me ka holo koina a hiki i ka hoʻohana inexpensive CDNs like BunnyCDN he mau haneri dala o ka mahina
inā makemake mākou e kiʻi i kahi hūnā paʻa a i ʻole kahi huna me nā hoalauna ʻole ma ke kikowaena a me ke kahawai
ʻAʻole loaʻa nā lawelawe CDN i nā wahi o ka ʻāina āu e pono ai
Pono nā hoʻonohonoho hoʻolaha ʻike kūikawā
makemake mākou e hoʻolalelale i ka hāʻawi ʻana i nā ʻike dynamic ma ka hoʻokomo ʻana i nā kikowaena hana kokoke i nā mea hoʻohana
aia ka hopohopo e hōʻiliʻili a hoʻohana pono paha kahi lawelawe CDN ʻaoʻao ʻekolu i ka ʻike e pili ana i ke ʻano o ka mea hoʻohana (hello i nā lawelawe ʻole-GDPR-compliant) a i ʻole komo i nā hana hewa ʻole.
I ka hapanui o nā hihia ʻē aʻe, ʻoi aku ka maikaʻi o ka hoʻohana ʻana i nā hoʻonā i hana ʻia.
He aha kāu e hoʻomaka ai
He mea kupanaha inā loaʻa iā ʻoe kāu ʻōnaehana autonomous (AS). Me ia hiki iā ʻoe ke hāʻawi i ka IP like i kekahi mau kikowaena a e like me keia olelo kuhikuhi ma ka pae pūnaewele, kuhikuhi i nā mea hoʻohana i kahi kokoke loa. He mea kūpono ke ʻōlelo ʻoiai me kahi block address / 24 hiki ke kūkulu i kahi pūnaewele hoʻolaha ʻike. ʻAe kekahi mau mea hoʻolako kikowaena iā ʻoe e hoʻolaha no ka hoʻohana ʻana ma nā wahi āpau i loaʻa iā lākou.
Inā ʻaʻole ʻoe ka mea laki o kahi poloka o nā helu IP, a laila e hoʻomaka i kahi CDN maʻalahi e pono ai ʻoe:
inoa inoa a i ʻole subdomain
ʻelua mau kikowaena ma nā wahi like ʻole. Hiki ke hoʻolaʻa a i ʻole ke kikowaena kikowaena
mea hana geoDNS. Me kāna kōkua, e kuhikuhi ʻia kahi mea hoʻohana e komo i kahi kikowaena i kahi kikowaena kokoke loa
E hoʻopaʻa inoa i kahi kikowaena a kauoha i nā kikowaena
Me ka hoʻopaʻa inoa domain, maʻalahi nā mea a pau - hoʻopaʻa inoa mākou i kēlā me kēia wahi me kekahi mea kākau inoa. Hiki iā ʻoe ke hoʻohana i kahi subdomain no ka CDN, no ka laʻana cdn.domainname.com. ʻOiaʻiʻo, ma kā mākou hiʻohiʻona e hana mākou i kēlā.
No ke kauoha ʻana i nā kikowaena, pono lākou e hoʻolimalima ʻia ma nā wahi a me nā ʻāina kahi i loaʻa ai kāu mea hoʻohana. Inā he intercontinental ka papahana, a laila maʻalahi ke koho i nā mea lawelawe e hāʻawi ana i nā kikowaena ma ka honua holoʻokoʻa. Nā laʻana: OVH, Lease pūnaewele и 100TB - no nā kikowaena hoʻolaʻa, Hōkū и ʻO DigitalOcean — no ke ao kaawale*.
No kā mākou CDN pilikino, e kauoha mākou i nā kikowaena virtual 3 ma nā ʻāina like ʻole. U Hōkū ma ke kikowaena no $5/mahina e loaʻa iā mākou 25GB SSD wahi a me 1TB kaʻa. I ka wā o ke kau ʻana, e koho mākou i ka Debian hou loa. ʻO kā mākou mau kikowaena:
Frankfurt, ip: 199.247.18.199
ʻO Chicago, ip: 149.28.121.123
Сингапур, ip: 157.230.240.216
*Ke hoʻohiki nei ʻo Vultr a me DigitalOcean i $100 i ka hōʻaiʻē i nā mea hoʻohana e kau inoa me ka hoʻohana ʻana i nā loulou i kēia ʻatikala ke hoʻohui lākou i kahi ala uku. Loaʻa pū ka mea kākau i kahi ʻōlelo hoʻomaikaʻi liʻiliʻi mai kēia, he mea nui loa iā ia i kēia manawa. E ʻoluʻolu e hoʻomaopopo.
Hoʻonohonoho i ka geoDNS
No ka hōʻoia i ka wā e komo ai ka mea hoʻohana i kahi CDN domain a i ʻole subdomain, kuhikuhi ʻia ʻo ia i ka server makemake (kokoke), pono mākou i kahi kikowaena DNS me ka hana geoDNS.
ʻO ke kumu a me ke kaʻina hana o geoDNS penei:
E wehewehe i ka IP o ka mea kūʻai aku nāna i hoʻouna i ka DNS noi, a i ʻole ka IP o ka recursive DNS server i hoʻohana ʻia i ka wā e hoʻoponopono ai i ka noi o ka mea kūʻai aku. ʻO ia mau kikowaena recursive he mau mea hoʻolako DNS.
Hōʻike ka IP o ka mea kūʻai i kona ʻāina a i ʻole ka ʻāina. No kēia, hoʻohana ʻia nā ʻikepili GeoIP, a he nui nā mea i kēia lā. Aia kekahi mau mea maikaʻi koho manuahi.
Ma muli o ka wahi o ka mea kūʻai aku, hāʻawi ia i ka IP address o ka kikowaena CDN kokoke loa.
DNS server me ka hana geoDNS hiki ke e houluulu ia oe iho, akā ʻoi aku ka maikaʻi o ka hoʻohana ʻana i nā hoʻonā i hana ʻia me kahi pūnaewele o nā kikowaena DNS a puni ka honua a ʻO Anycast mai ka pahu:
CloudDNS от $9.95/mahina, GeoDNS tariff, ma ka maʻamau aia hoʻokahi DNS Failover
Cloudflare, Loaʻa ka hana "Geo Steering" i nā uku o Enterprise
Ke kauoha ʻana i ka geoDNS, pono ʻoe e hoʻolohe i ka nui o nā noi i hoʻokomo ʻia i ka uku a e noʻonoʻo i ka helu maoli o nā noi i ka domain e ʻoi aku ka nui o nā manawa ma mua o ka mea i manaʻo ʻia. ʻO nā miliona o nā spiders, scanners, spammers a me nā ʻuhane ʻino ʻē aʻe e hana me ka luhi.
Ma kahi kokoke i nā lawelawe DNS āpau i loko o ke kumukūʻai kahi lawelawe koʻikoʻi no ke kūkulu ʻana i kahi CDN - DNS Failover. Me kāna kōkua, hiki iā ʻoe ke hoʻonohonoho i ka nānā ʻana i ka hana o kāu mau kikowaena a, inā ʻaʻohe hōʻailona o ke ola, e hoʻololi aunoa i ka helu o ka server hana ʻole i nā pane DNS me kahi mea hoʻihoʻi.
No ke kūkulu ʻana i kā mākou CDN e hoʻohana mākou ʻO ClouDNS, ka uku o GeoDNS.
E hoʻohui i kahi wahi DNS hou i kāu moʻokāki pilikino, e hōʻike ana i kāu kikowaena. Inā mākou e kūkulu nei i kahi CDN ma kahi subdomain, a ua hoʻohana mua ʻia ke kahua nui, a laila ma hope koke o ka hoʻohui ʻana i ka ʻāpana, mai poina e hoʻohui i nā moʻolelo DNS e hana nei. ʻO ka hana aʻe, ʻo ia ka hana ʻana i kekahi mau moʻolelo A no ka CDN domain/subdomain, e hoʻohana ʻia kēlā me kēia no ka ʻāina a mākou i kuhikuhi ai. Hiki iā ʻoe ke kuhikuhi i nā ʻāina a i ʻole nā ʻāina ma ke ʻano he ʻāpana; aia nā subregions no ʻAmelika a me Kanada.
I kā mākou hihia, e hoʻāla ʻia ka CDN ma kahi subdomain cdn.sayt.in. Ma ka hoʻohui ʻana i kahi ʻāpana sayt.in, e hana kākou i ka moʻolelo A mua no ka subdomain a kuhikuhi iā ʻAmelika ʻĀkau a pau i ke kikowaena ma Chicago:
E hana hou i ka hana no nā wahi ʻē aʻe, me ka poina ʻole e hana i hoʻokahi komo no nā ʻāina paʻamau. Eia ka mea i loaʻa iā ʻoe ma ka hopena:
ʻO ka hoʻokomo paʻa hope loa i ka screenshot, ʻo ia ka mea e hoʻouna ʻia nā wahi āpau ʻole (a ʻo ʻEulopa, ʻApelika, nā mea hoʻohana pūnaewele satellite, a me nā mea ʻē aʻe) i ke kikowaena ma Frankfurt.
Hoʻopau kēia i ka hoʻonohonoho DNS kumu. ʻO nā mea a pau i koe e hele i ka pūnaewele o ka mea kākau inoa a hoʻololi i nā NS o kēia manawa me nā mea i hoʻopuka ʻia e ClouDNS. A ʻoiai e hoʻonui ʻia ana nā NS, e hoʻomākaukau mākou i nā kikowaena.
Ke kau nei i nā palapala hōʻoia SSL
E hana ana kā mākou CDN ma luna o HTTPS, no laila inā loaʻa iā ʻoe nā palapala SSL no kahi kikowaena a i ʻole subdomain, e hoʻouka iā lākou i nā kikowaena āpau, no ka laʻana i ka papa kuhikuhi. /etc/ssl/koudomain/
Inā ʻaʻohe āu palapala hōʻoia, hiki iā ʻoe ke loaʻa i kahi palapala manuahi mai Let's Encrypt. Pono no kēia ʻO ka palapala ACME Shell. He mea maʻalahi ka mea kūʻai aku a maʻalahi hoʻi e hoʻonohonoho, a ʻo ka mea nui loa, hiki iā ʻoe ke hōʻoia i kahi domain / subdomain me ka hoʻohana ʻana i DNS ma o ka API mai ClouDNS.
E hoʻouka mākou i ka acme.sh ma kahi o nā kikowaena - ʻEulopa 199.247.18.199, kahi e kope ʻia ai nā palapala hōʻoia i nā mea ʻē aʻe. No ka hoʻouka ʻana, e hana:
I ka wā e hoʻokomo ai i ka palapala, e hana ʻia kahi hana CRON no ka hoʻonui hou ʻana i nā palapala hōʻoia me ka ʻole o kā mākou komo ʻana.
E hoʻokō ʻia ka hōʻoia domain i ka wā e hāʻawi ai i kahi palapala hōʻoia ma o DNS me ka hoʻohana ʻana i ka API, no laila i kāu moʻokāki pilikino ClouDNS ma ka papa kuhikuhi Reseller API pono ʻoe e hana i kahi mea hoʻohana API hou a hoʻonoho i kahi ʻōlelo huna no ia. E kākau mākou i ka auth-id me ka ʻōlelo huna ma kahi faila ~/.acme.sh/dnsapi/dns_cloudns.sh (ʻaʻole e huikau me ka faila dns_clouddns.sh). Eia nā laina e pono e hoʻoponopono ʻole ʻia a hoʻoponopono ʻia:
Ma nā palena, no ka wā e hiki mai ana, ua kuhikuhi mākou i kahi kauoha e hoʻouka hou i ka hoʻonohonoho kikowaena pūnaewele ma hope o kēlā me kēia hōʻoia hōʻoia i ka wā e hiki mai ana.
ʻO ke kaʻina holoʻokoʻa o ka loaʻa ʻana o kahi palapala hōʻoia hiki ke piʻi i 2 mau minuke, mai hoʻopau iā ia. Inā loaʻa ka hewa hōʻoia domain, e hoʻāʻo e holo hou i ke kauoha. I ka hopena e ʻike mākou i kahi i hoʻoiho ʻia ai nā palapala hōʻoia:
E hoʻomanaʻo kākou i kēia mau ala; pono lākou e kuhikuhi ʻia i ke kope ʻana i ka palapala hōʻoia i nā kikowaena ʻē aʻe, a me nā hoʻonohonoho kikowaena pūnaewele. ʻAʻole mākou e hoʻolohe i ka hewa o ka hoʻouka hou ʻana i nā configs Nginx - ma kahi kikowaena i hoʻonohonoho pono ʻia, ʻaʻole ia e ʻike ʻia i ka wā e hoʻonui ai i nā palapala hōʻoia.
ʻO nā mea a pau e koe iā mākou me SSL, ʻo ia ke kope i ka palapala i loaʻa i ʻelua mau kikowaena ʻē aʻe, e mālama ana i ke ala i nā faila. E hana mākou i nā papa kuhikuhi like ma kēlā me kēia o lākou a hana i kope:
No ka hoʻonui mau i nā palapala hōʻoia, e hana mākou i kahi hana CRON i kēlā me kēia lā ma nā kikowaena ʻelua me ke kauoha:
scp -r [email protected]:/root/.acme.sh/cdn.sayt.in/* /root/.acme.sh/cdn.sayt.in/ && service nginx reload
I kēia hihia, pono e hoʻonohonoho ʻia ke komo ʻana i ke kikowaena kumu mamao ma ke kī, i.e. me ka hookomo ole i ka olelo huna. Mai poina e hana i kēia.
Hoʻonohonoho a hoʻonohonoho iā Nginx
No ka lawelawe ʻana i nā ʻike static, e hoʻohana mākou iā Nginx i hoʻonohonoho ʻia ma ke ʻano he server proxy caching. E hōʻano hou i nā papa inoa pūʻolo a hoʻokomo iā ia ma nā kikowaena ʻekolu:
nui_nui — ʻaʻole ʻoi aku ka nui o ka cache ma mua o ka wahi disk i loaʻa
pili ʻole - ka manawa mālama no ka ʻikepili huna ʻaʻole i komo
ssl_certificate и ssl_certificate_key - nā ala i ka palapala SSL a me nā faila kī
proxy_cache_valid - ka manawa mālama o ka ʻikepili huna
proxy_pass - ka helu wahi o ke kikowaena kumu kahi e noi ai ka CDN i nā faila no ka caching. Ma kā mākou laʻana kēia sayt.in
E like me kāu e ʻike ai, maʻalahi nā mea a pau. ʻO ka pilikia wale nō ke ala mai i ka hoʻonohonoho ʻana i ka manawa caching ma muli o ka like o nā kuhikuhi pili ʻole и proxy_cache_valid. E nānā kākou iā lākou me ka hoʻohana ʻana i kā mākou laʻana. ʻO kēia ka mea e hana ai i ka wā hana ʻole=7d и proxy_cache_valid 90d:
inā ʻaʻole i hana hou ʻia ka noi i loko o 7 mau lā, e holoi ʻia ka ʻikepili mai ka cache ma hope o kēia manawa
inā e hana hou ʻia ka noi ma ka liʻiliʻi loa i kēlā me kēia 7 mau lā, a laila e noʻonoʻo ʻia ka ʻikepili i loko o ka cache ma hope o nā lā 90 a me ka noi aʻe e hōʻano hou ʻo Nginx iā ia, e lawe iā ia mai ka server kumu.
Pau ka hoʻoponopono ʻana nginx.conf, hoʻouka hou i ka hoʻonohonoho:
root@cdn:~# service nginx reload
Mākaukau loa kā mākou CDN. No $15 / mahina. ua loaʻa iā mākou nā wahi o ka hele ʻana ma nā ʻāina ʻekolu a me 3 TB o ke kaʻa: 1 TB ma kēlā me kēia wahi.
Ke nānā nei i ka hana o ka CDN
E nānā i nā pings i kā mākou CDN mai nā wahi ʻāina like ʻole. He kūpono nā lawelawe ping no kēia.
Kuhikuhi hoʻomaka
Mea Hoʻokipa
IP
Ka manawa maʻamau, ms
Australia, Sydney
cdn.sayt.in
157.230.240.216
95.9
Maikaʻi nā hopena. I kēia manawa e kau i kahi kiʻi hoʻāʻo ma ke kumu o ka pūnaewele nui hōʻike.jpg a nānā i kona wikiwiki hoʻoiho ma o CDN. Ua ʻōlelo ʻia - hana ʻia. Hāʻawi koke ʻia ka ʻike.
E kākau i kahi palapala liʻiliʻi inā makemake mākou e hoʻomaʻemaʻe i ka huna huna ma ka helu CDN. hoʻomaʻemaʻe.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
No ka holoi ʻana i ka cache holoʻokoʻa, holo wale ia; hiki iā ʻoe ke holoi i kahi faila ʻokoʻa e like me kēia:
root@cdn:~# ./purge.sh /test.jpg
ʻO kahi o nā manaʻo
ʻO ka hope, makemake wau e hāʻawi i kekahi mau ʻōlelo aʻoaʻo maikaʻi e hiki koke ai i luna o ka rake i hāʻawi mua iaʻu i ka ʻeha poʻo:
No ka hoʻonui ʻana i ka hoʻomanawanui hewa CDN, ua ʻōlelo ʻia e hoʻonohonoho i ka DNS Failover, e kōkua koke i ka hoʻololi ʻana i ka moʻolelo A i ka wā o kahi kikowaena server. Hana ʻia kēia ma ka papa mana hoʻopaʻa moʻolelo DNS domain
Pono nā paena me kahi ākea ākea e koi i ka nui o nā helu CDN, akā, ʻaʻole mākou e hoʻomake. ʻO ka mea nui loa, ʻaʻole ʻike ka mea hoʻohana i kahi ʻokoʻa koʻikoʻi i hoʻohālikelike ʻia me kahi CDN uku inā kau ʻoe i nā kikowaena ma nā wahi 6-7: ʻEulopa, ʻAmelika ʻAmelika (hikina), ʻAmelika ʻĀkau (komohana), Singapore, Australia, Hong Kong a i Iapana.
I kekahi manawa ʻaʻole ʻae nā mea hoʻokele i ka hoʻohana ʻana i nā kikowaena hoʻolimalima no nā kumu CDN. No laila, inā hoʻoholo koke ʻoe e kau i kahi ʻoihana hoʻolaha ma ke ʻano he lawelawe, mai poina e heluhelu i nā lula o kāu mea hoʻolako kikowaena kikoʻī ma mua.
E ho'āʻo e nānā pings mai nā wahi like ʻole i kāu mau kikowaena. Ma kēia ala hiki iā ʻoe ke ʻike i nā wahi kokoke loa i nā helu CDN a hoʻonohonoho pololei iā GeoDNS
Ma muli o nā hana, pono e hoʻopilikino iā Nginx no nā koi caching kikoʻī a me ka noʻonoʻo ʻana i ka ukana ma ka kikowaena. Ua kōkua nui nā ʻatikala e pili ana i ka cache Nginx iaʻu me kēia - maanei a me ka wikiwiki o ka hana ma lalo o nā ukana kaumaha: maanei и maanei