Oppaat

Mikä on CDN? Sisällönjakeluverkot selitettynä yksinkertaisesti

CDN (content delivery network) on palvelinverkosto, jonka palvelimet sijaitsevat monissa kaupungeissa ja pitävät kopioita verkkosivustosi tiedostoista: kuvista, skripteistä, tyylitiedostoista ja joskus kokonaisista sivuista. Kun joku vierailee sivustollasi, hänet palvellaan lähellä olevalta palvelimelta eikä yhdeltä kaukaiselta palvelimelta. Se tekee sivuista nopeampia, vähentää omalle palvelimellesi kohdistuvaa kuormaa ja auttaa sivustoa selviämään liikenteen piikeistä.

Miksi CDN:t ovat tärkeitä, kun rakennat tekoälyllä

Et ehkä koskaan määritä CDN:ää itse, sillä monet hostauspalvelut sijoittavat sellaisen sivustosi eteen automaattisesti. Vaikutukset kuitenkin tuntuvat:

  • Nopeus. Nopeammin latautuvat sivut pitävät kävijät paikalla, ja hakukoneet huomioivat ne. Katso miten teet sivustostasi nopeamman.
  • „Miksi muutokseni ei näy?” Kun julkaiset päivityksen, vanhan version kopio voi jäädä välimuistiin hetkeksi. Kun tiedät syyn, säästyt paljolta sekaannukselta.
  • Yksityisyys ja oikeellisuus. Jos CDN tallentaa väärän asian, esimerkiksi sivun, jolla on yhden käyttäjän tiedot, seuraava kävijä voi nähdä ne. Kun tiedät, mitä pitää ja mitä ei pidä välimuistittaa, osaat esittää oikeat kysymykset.

Arkinen vertauskuva

Kuvittele leipomo, joka myy leipiään koko maahan yhdestä myymälästä. Jokaisen asiakkaan, olipa matka kuinka pitkä tahansa, täytyy odottaa toimitusta sieltä. Ruuhkapäivinä jono on valtava.

CDN on kuin samaa leipää myytäisiin paikallisissa kulmakaupoissa ympäri maata. Asiakkaat hakevat leivän läheltä ja nopeasti, ja pääleipomon tarvitsee täydentää kulmakauppojen varastoja vain silloin tällöin. Kääntöpuoli on tämä: kun leipomo vaihtaa reseptin, kulmakaupat myyvät yhä vanhaa leipää, kunnes ne saavat ohjeen vaihtaa sen tai vanha varasto vanhenee.

Miten CDN toimii

  1. Alkuperä (origin). Sivustosi sijaitsee pääpalvelimellasi tai hostauspalvelussasi. Sitä kutsutaan alkuperäksi.
  2. Reunasijainnit. CDN:llä on palvelimia monessa paikassa. Niitä kutsutaan reunasijainneiksi (edge locations) tai läsnäolopisteiksi (points of presence).
  3. Reititys. Kun kävijä pyytää sivustoasi, DNS tai verkkoreititys ohjaa hänet lähimpään reunasijaintiin. Katso miten domainit ja DNS toimivat.
  4. Välimuistiosuma (cache hit). Jos reunasijainnilla on jo tuore kopio tiedostosta, se lähettää sen heti.
  5. Välimuistiohitus (cache miss). Jos kopiota ei ole, se hakee tiedoston alkuperästä, lähettää sen kävijälle ja säilyttää kopion seuraavaa kävijää varten.
  6. Vanheneminen. Jokainen kopio säilytetään tietyn ajan. Ajan määrää palvelimesi lähettämät välimuistiotsakkeet (cache headers), tai kopio poistetaan, kun se puhdistetaan.

Esimerkki: valokuvaajan portfolio

Valokuvaajan portfoliosivustolla on etusivu, galleria, jossa on 60 isoa kuvaa, ja yhteydenottolomake. Alkuperä on Euroopassa. Singaporesta tuleva kävijä avaa galleriaa.

  • Ilman CDN:ää: jokainen kuva kulkee Euroopasta. Jokainen pyyntö matkaa koko maailman halki, joten galleria täyttyy hitaasti.
  • CDN:n kanssa: ensimmäinen Singaporen lähellä oleva kävijä saa lähellä olevan reunasijainnin hakemaan ja tallentamaan kuvat. Kaikki myöhemmät alueen kävijät saavat ne läheltä, paljon nopeammin.

Nyt valokuvaaja vaihtaa etusivun pääkuvan ja julkaisee uudelleen. Näin määräytyy, näkevätkö kävijät muutoksen:

/index.html                    → lyhyt välimuisti, tarkistetaan usein
/assets/index-3f9a2c.js        → pitkä välimuisti
/assets/hero-8b41d0.jpg        → pitkä välimuisti

Nykyaikaiset rakennustyökalut, kuten Vite, antavat tiedostoille tiivisteeseen perustuvat nimet (hashed names), kuten hero-8b41d0.jpg. Kun tiedosto muuttuu, sen nimi muuttuu, joten sivu pyytää aivan uutta tiedostoa, jota mikään välimuisti ei ole vielä nähnyt. HTML-sivu itsessään on välimuistissa vain lyhyesti, joten se ohjaa pian kävijät uusiin tiedostoihin. Näin saadaan sekä pitkä välimuisti että tuoreet päivitykset.

Lomakkeen lähetykset eroavat tästä. Ne menevät palvelimelle joka kerta, eikä niitä pidä koskaan välimuistittaa.

Mitä välimuistiin ja mitä ei

Yleensä välimuistiin pitkäksi aikaaYleensä lyhyesti välimuistiinEi jaettuun CDN:ään
Kuvat, fontit, videotJulkisten sivujen HTML-sivutKirjautuneiden sivut, hallintanäkymät
JavaScript ja CSS tiivisteisillä nimilläJulkinen API-data, joka muuttuu silloin tällöinKaikki henkilötiedot
Ladattavat tiedostot, jotka harvoin muuttuvatLomakelähetykset, maksut, kaikki POST-pyynnöt

Keskeiset termit

TermiMerkitys
Alkuperä (origin)Pääpalvelimesi tai hostauspalvelusi, jossa varsinaiset tiedostot ovat.
Reunasijainti / PoPCDN-sijainti, joka palvelee lähellä olevia kävijöitä.
Välimuistiosuma / -ohitusReunasijainnilla oli tiedosto / se joutui hakemaan tiedoston alkuperästä.
TTLTime to live: kuinka kauan välimuistikopio säilytetään.
Cache-Control-otsakePalvelimesi lähettämä ohje siitä, saako jotain välimuistittaa ja kuinka pitkäksi aikaa.
Purge / invalidointiKäsky CDN:lle hävittää välimuistikopiot heti.
Cache bustingTiedoston nimen tai URL-osoitteen vaihtaminen muutoksen yhteydessä, jotta välimuisti hakee uuden version.
Viive (latency)Etäisyyden ja verkkohyppyjen aiheuttama viive.

Yleisemmin välimuistista selaimissa, palvelimissa ja tietokannoissa kerrotaan mitä välimuisti on -oppaassa.

Yleisiä väärinkäsityksiä

  • „CDN nopeuttaa kaiken.” Se nopeuttaa tiedostojen toimittamista. Hidas tietokantakysely tai hidas tekoälykutsu palvelimellasi on edelleen hidas.
  • „CDN korvaa hostauksen.” Se sijaitsee hostauksesi edessä. Tarvitset yhä alkuperän.
  • „Jos päivitin sivuston, kaikki näkevät sen heti.” Vanhat kopiot voivat jäädä CDN:ään ja selaimiin hetkeksi. Tarkista kovalla päivityksellä ja käytä tiivisteisiin perustuvia tiedostonimiä.
  • „Välimuistitus on aina turvallista.” Henkilökohtaisen sivun tallentaminen jaettuun välimuistiin on todellinen yksityisyysriski. Yksityiset vastaukset pitää merkitä välimuistiin kelpaamattomiksi.
  • „CDN:t ovat vain suuria yrityksiä varten.” Monet palvelut sisältävät CDN:n myös pienille sivustoille ilman lisävaivaa.

Mitä kysyä tekoälyrakentajalta

  • „Onko tämän sivuston edessä CDN? Mitä tiedostoja se välimuistittaa ja kuinka pitkäksi aikaa?”
  • „Varmista, että käännetyillä JavaScript-, CSS- ja kuvatiedostoilla on tiivisteisiin perustuvat nimet ja pitkä välimuisti, ja HTML-tiedostolla lyhyt välimuisti.”
  • „Älä koskaan välimuistita kirjautuneita sivuja tai API-vastauksia, joissa on henkilötietoja, jaetussa välimuistissa.”
  • „Pakkaa ja muokkaa kuvat sopiviksi, jotta galleria latautuu nopeasti.”
  • „Julkaisin päivityksen, mutta näen yhä vanhan version. Onko kyse selaimen vai CDN:n välimuistista?”

CDN:t ja Mythex

Kun julkaiset Mythexissä, staattiset käyttöliittymät julkaistaan staattisina sivustoina. Dokumentaatio mainitsee, että CDN-välimuistit voivat jäädä hetkeksi jälkeen päivityksestä: jos näet vanhan version julkaisun jälkeen, tee kova päivitys julkisessa URL-osoitteessa. Mitään ei tarvitse määrittää. Jos liität oman domainin, jonka DNS on Cloudflaressa, dokumentaatio pyytää asettamaan tietueen tilaan „DNS only” eikä välitettynä (proxied), jotta Mythex voi myöntää HTTPS-varmenteen oikein. Katso miten julkaistaan ja omat domainit dokumentaatiosta sekä oppaamme verkkohotellista.

Kysymykset

Mikä on CDN yksinkertaisesti selitettynä?

CDN (content delivery network) on palvelinverkosto, jonka palvelimet sijaitsevat monessa paikassa ja pitävät kopioita verkkosivustosi tiedostoista. Kävijä saa sisällön lähellä olevalta paikalta pääpalvelimen sijaan, joten sivut latautuvat nopeammin ja pääpalvelimesi tekee vähemmän työtä.

Miksi näen vielä vanhan version sivustostani päivityksen jälkeen?

Yleensä siksi, että vanhasta tiedostosta on välimuistissa kopio: CDN:ssä, selaimessa tai molemmissa. Kova päivitys korjaa selainpuolen. CDN:n kopiot vanhenevat itsestään tai ne voi poistaa. Rakennustyökalut välttävät suurimman osan ongelmasta antamalla muuttuneille tiedostoille uudet nimet.

Tarvitsenko CDN:n pieneen verkkosivustoon?

Sinulla on sellainen usein ilman omaa valintaa, sillä monet hostauspalvelut sijoittavat CDN:n sivuston eteen automaattisesti. Jos sinulla ei ole sitä ja kävijäsi ovat eri maissa, sen lisääminen on yleensä kannattavaa.

Voiko CDN tallentaa sovellukseni tietoja ja kirjautuneita sivuja?

Se voi tallentaa mitä tahansa, mitä sille sallitaan, joten se on pakko määrittää huolellisesti. Julkiset tiedostot, kuten kuvat, skriptit ja tyylit, sopivat hyvin. Henkilökohtaista tai kirjautuneiden käyttäjien sisältöä ei yleensä pidä tallentaa jaettuun CDN:ään, koska yksi käyttäjä voisi nähdä toisen tiedot.

Mythex · Pricing · Rakenna mitä tahansa tekoälyllä · Verkkosivu- ja sovellusmallipohjat · Mythex vertailussa · Tekoälysovellusten rakentamisen sanasto · Ilmaiset työkalut tekoälysovellusten rakentamiseen · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)