Mis on CDN? Sisuedastusvõrgud lihtsalt selgitatult
CDN (sisuedastusvõrk) on paljudes linnades laiali paigutatud serverite võrk, mis hoiab sinu veebisaidi faile — pilte, skripte, stiilileht ja mõnikord terveid lehti. Kui keegi sinu saiti külastab, saadetakse talle sisu lähemast asukohast, mitte kaugel asuvast serverist. See teeb lehed kiiremini laaduvaks, koormab vähem sinu enda serverit ja aitab saidil taluda liikluse järske tõuse.
Miks CDN-id AI-ga ehitamisel tähtsad on
Võib-olla ei seadista sa CDN-i kunagi ise — paljud hostimisplatvormid panevad saidi ette ühe automaatselt. Aga selle mõju tunned küll:
- Kiirus. Kiiremini laaduvad lehed hoiavad külastajaid kohal ja on üks asi, mida otsingumootorid arvestavad. Vaata kuidas oma veebisaiti kiiremaks teha.
- „Miks mu muudatus ei ilmu?“ Pärast uuenduse avaldamist võib vana versiooni vahemällu salvestatud koopia alles mõnda aega püsida. Selle põhjuse teadmine säästab palju segadust.
- Privaatsus ja õigsus. Kui CDN salvestab vahemällu valesti — lehe, kus on ühe kasutaja andmed — võib järgmine külastaja selle näha. Teadmine, mida tohib ja mida ei tohi vahemällu salvestada, aitab esitada õigeid küsimusi.
Igapäevane võrdlus
Kujuta ette pagariäri, mis müüb oma leiba üle riigi ühest poest. Iga klient, olgu ta kui kaugel tahes, peab ootama kohaletoimetamist sellest ühest poest — ja hõivatud päeval on järjekord tohutu.
CDN on nagu sama leiva laomine kohalikesse nurgapoodidesse üle riigi. Kliendid saavad selle lähedalt ja kiiresti kätte ning peapagaril tuleb nurgapoode täiendada ainult aeg-ajalt. Kuid püük on see: kui pagar muudab retsepti, müüvad nurgapoed vana leiba edasi, kuni neile öeldakse seda asendada või vana laos aegub.
Kuidas CDN töötab
- Sinu allikas. Sinu sait asub peaserveris või hostimisplatvormil — seda nimetatakse allikaks (origin).
- Servaasukohad. CDN käitab servereid paljudes kohtades, mida nimetatakse servaasukohtadeks (edge locations) või levipunktideks (points of presence).
- Marsruutimine. Kui külastaja pärib sinu saiti, saadavad DNS või võrguliiklus ta lähimale servale. Vaata kuidas domeenid ja DNS töötavad.
- Vahemälu tabamus. Kui sellel servalal on faili värske koopia, saadab ta selle kohe.
- Vahemälu möödalaskmine. Kui ei ole, toob server faili sinu allikast, saadab külastajale ja hoiab koopiat järgmise inimese jaoks.
- Aegumine. Iga koopiat hoitakse kindla aja jooksul, mida juhivad sinu serveri saadetud vahemälu päised (cache headers), või kuni see tühjendatakse.
Töötav näide: fotodega portfoolio sait
Fotograafi portfoolio koosneb avalehest, galeriist 60 suure pildiga ja kontaktivormist. Allikas asub Euroopas. Külastaja Singapurist avab galerii.
- Ilma CDN-ita: iga pilt tuleb Euroopast. Iga päring käib maailma teise otsa ja ümber, seega galerii laadub aeglaselt.
- CDN-iga: esimene Singapuri lähedal olev külastaja paneb sealse serva pilte tooma ja salvestama. Iga järgmine külastaja selles piirkonnas saab need lähedalt, oluliselt kiiremini.
Nüüd fotograaf vahetab avalehe pealkirjapildi ja avaldab uuesti. Siin on, mis otsustab, kas külastajad seda näevad:
/index.html → lühike vahemälu aeg, kontrollitakse sageli
/assets/index-3f9a2c.js → pikalt vahemälus
/assets/hero-8b41d0.jpg → pikalt vahemälus
Kaasaegsed ehitusvahendid, sealhulgas Vite, annavad failidele räsitud nimed nagu hero-8b41d0.jpg. Kui fail muutub, muutub ka tema nimi, seega leht küsib täiesti uut faili, mida ükski vahemälu pole näinud. HTML-lehte endat hoitakse vahemälus ainult lühikest aega, seega see suunab külastajad peagi uutele failidele. See on standardviis, mille abil saab nii pikka vahemälu kui ka värskeid uuendusi.
Kontaktivorm on teine lugu. Selle esitused lähevad serverisse alati; neid ei tohi kunagi vahemällu salvestada.
Mida vahemällu salvestada ja mida mitte
| Tavaliselt pikalt vahemällu | Tavaliselt lühidalt vahemällu | Ei salvestata jagatud CDN-is |
|---|---|---|
| Pildid, fondid, videod | Avaliku saidi HTML-lehed | Sisselogitud lehed, töölauad |
| JavaScript ja CSS räsitud nimedega | Avalik API-andmed, mis aeg-ajalt muutuvad | Kõik, millel on isikuandmed |
| Allalaaditavad failid, mis harva muutuvad | Vormi esitused, maksed, kõik POST-päringud |
Põhimõisted
| Mõiste | Tähendus |
|---|---|
| Allikas (origin) | Sinu peaserver või host, kus päris failid asuvad. |
| Serv / PoP | CDN-i asukoht, mis teenindab külastajaid lähedal. |
| Vahemälu tabamus / möödalaskmine | Serval oli fail / ta pidi selle allikast tooma. |
| TTL | Eluiga — kui kaua vahemälu koopiat hoitakse. |
| Cache-Control päis | Juhis, mille sinu server saadab, öeldes, kas ja kui kaua midagi tohib vahemällu salvestada. |
| Tühjendamine / kehtetuks tunnistamine | CDN-ile antav käsk visata vahemälu koopiad kohe minema. |
| Vahemälu murdmine (cache busting) | Faili nime või URL-i muutmine, kui fail muutub, et vahemälud tooks uue. |
| Latentsus | Viivitus, mida põhjustavad kaugus ja võrgusõlmed. |
Vahemällu salvestamisest üldiselt — brauserites, serverites ja andmebaasides — vaata mis on vahemällu salvestamine.
Levinud väärarusaamad
- „CDN teeb kõik kiiremaks.“ See kiirendab failide edastamist. Aeglane andmebaasi päring või aeglane AI-kutse sinu serveris on ikka aeglane.
- „CDN asendab hostimise.“ See asub sinu hostimise ees. Allikas on ikka vaja.
- „Kui ma saiti uuendasin, näevad kõik seda kohe.“ Vanad koopiad võivad CDN-is ja brauserites mõnda aega püsida. Kontrolli kõva värskendusega ja kasuta räsitud failinimesid.
- „Vahemällu salvestamine on alati ohutu.“ Personaliseeritud lehe salvestamine jagatud vahemällu on tõeline privaatsusrisk. Privaatsed vastused tuleks märkida mittesalvestatavaks.
- „CDN-id on ainult suurtele ettevõtetele.“ Paljud hostid lisavad väikestele saitidele ühe ilma lisapingutuseta.
Mida küsida oma AI-ehitajalt
- „Kas selle saidi ees on CDN? Mis faile see vahemällu salvestab ja kui kauaks?“
- „Veendu, et koostatud JavaScript, CSS ja pildid on räsitud failinimedega ja pika vahemälu ajaga ning HTML-il on lühike.“
- „Ära salvesta kunagi jagatud vahemällu sisselogitud lehti ega API-vastuseid, millel on isikuandmed.“
- „Tihenda ja muuda pilte väiksemaks, et galerii laaduks kiiresti.“
- „Avaldasin uuenduse, aga näen ikka vana versiooni — kas probleem on brauseri vahemälus või CDN-is?“
CDN-id ja Mythex
Kui avaldad Mythexis, juurutatakse staatilised esiotsad staatiliste saitidena ning dokumentatsioon märgib, et CDN-i vahemälud võivad pärast uuendust lühikest aega hilineda: kui näed pärast uuesti avaldamist vana versiooni, tee avalikul URL-il kõva värskendus. Selleks pole midagi seadistada. Kui ühendad kohandatud domeeni, mille DNS on Cloudflare’is, palub dokumentatsioon seada kirje väärtuseks „DNS only“ (ainult DNS), mitte proksitud, et Mythex saaks HTTPS-i korrektselt välja anda. Vaata dokumentatsioonist kuidas avaldada ja kohandatud domeenid ning meie juhendit veebihostimisest.
Küsimused
Mis on CDN lihtsalt öeldes?
CDN (sisuedastusvõrk) on paljudes asukohtades olevate serverite võrk, mis hoiab sinu veebisaidi failide koopiaid. Külastajad saavad sisu lähimast asukohast, mitte sinu peaserverist, nii et lehed laaduvad kiiremini ja sinu server teeb vähem tööd.
Miks ma näen pärast saidi uuendamist ikka vana versiooni?
Tavaliselt seetõttu, et vana faili koopia on vahemälus — CDN-is, sinu brauseris või mõlemas. Brauseripoolse probleemi lahendab kõva värskendus; CDN-i koopiad aeguvad iseenesest või neid saab tühjendada. Ehitusvahendid väldivad enamikku sellest, andes muudetud failidele uued nimed.
Kas väikesele veebisaidile on CDN vaja?
Sul on see sageli olemas ilma et seda valiksid, sest paljud hostimisplatvormid panevad saitide ette automaatselt CDN-i. Kui sinu omal ei ole ja sinu külastajad on eri riikides, on selle lisamine tavaliselt mõttekas.
Kas CDN võib vahemällu salvestada minu rakenduse andmeid ja sisselogitud lehti?
Ta võib vahemällu salvestada kõike, mida tal lubatakse, seetõttu tuleb see hoolikalt seadistada. Avalikud failid nagu pildid, skriptid ja stiilid sobivad ideaalselt. Isiklikku või sisselogitud sisu ei tohiks tavaliselt jagatud CDN-is vahemällu salvestada, sest siis võiks üks kasutaja näha teise andmeid.