Kaj je CDN? Omrežja za dostavo vsebine preprosto
CDN (omrežje za dostavo vsebine) je mreža strežnikov, razporejenih po mnogih mestih, ki hranijo kopije datotek vašega spletnega mesta — slik, skript, slogovnih datotek, včasih cele strani. Ko obiskovalec pride na vaše spletno mesto, dobi vsebino z lokacije blizu sebi, ne z enega oddaljenega strežnika. Strani se tako naložijo hitreje, vaš strežnik je manj obremenjen, spletno mesto pa lažje prenese naval obiskovalcev.
Zakaj so CDN-ji pomembni, ko gradite z umetno inteligenco
Morda nikoli ne nastavljate CDN-ja sami — mnoge gostiteljske platforme ga postavijo pred vaše spletno mesto samodejno. Njegov učinek pa boste opazili:
- Hitrost. Hitreje naložene strani obiskovalce obdržijo, iskalniki pa to upoštevajo med dejavniki. Glejte kako narediti spletno mesto hitrejše.
- »Zakaj se moja sprememba ne prikazuje?« Po objavi posodobitve lahko kopija stare različice še nekaj časa ostane. Če veste, zakaj, vam to prihrani veliko zmede.
- Zasebnost in pravilnost. Če CDN predpomni nekaj napačnega — stran z osebnimi podatki enega uporabnika — jo lahko naslednji obiskovalec vidi. Če veste, kaj se sme in kaj ne sme predpomniti, lahko zastavite prava vprašanja.
Vsakdanja primerjava
Predstavljajte si pekarno, ki prodaja kruh po vsej državi iz ene same trgovine. Vsak kupec, ne glede na oddaljenost, mora čakati na dostavo iz te ene trgovine — in ob prometnem dnevu je vrsta ogromna.
CDN je kot da bi isti kruh imeli na zalogi v lokalnih trgovinah po vsej državi. Kupci ga dobijo blizu doma, hitro, glavna pekarna pa mora trgovine oskrbeti le občasno. Ulov: ko pekarna spremeni recept, lokalne trgovine prodajajo stare hlebce, dokler jim ne rečejo, naj jih zamenjajo, ali dokler stara zaloga ne poteče.
Kako deluje CDN
- Vir. Vaše spletno mesto živi na glavnem strežniku ali gostiteljski platformi — imenovanem vir (origin).
- Robne lokacije. CDN ima strežnike na mnogih mestih, imenovanih robne lokacije (edge) ali prisotnostne točke (PoP).
- Usmerjanje. Ko obiskovalec zahteva vaše spletno mesto, ga DNS ali omrežno usmerjanje pošlje na bližnjo robno lokacijo. Glejte kako delujeta domene in DNS.
- Zadetek v predpomnilniku. Če ta robna lokacija že ima svežo kopijo datoteke, jo takoj pošlje.
- Zgrešitev predpomnilnika. Če je nima, jo prenese iz vira, pošlje obiskovalcu in shrani kopijo za naslednjega.
- Pretek. Vsaka kopija ostane shranjena določen čas, ki ga določajo glave predpomnjenja, ki jih pošilja vaš strežnik, ali dokler je ne izbrišete.
Delovni primer: portfelj fotografa s slikami
Fotografov portfelj ima domačo stran, galerijo s 60 velikimi slikami in obrazec za stik. Vir je v Evropi. Obiskovalec v Singapurju odpre galerijo.
- Brez CDN-ja: vsaka slika potuje iz Evrope. Vsaka zahteva opravi pot okoli sveta, zato se galerija polni počasi.
- S CDN-jem: prvi obiskovalec blizu Singapurja povzroči, da robna lokacija tam slike prenese in shrani. Vsak naslednji obiskovalec v regiji jih dobi od blizu, veliko hitreje.
Zdaj fotograf zamenja glavno sliko domače strani in objavi. Tukaj je, kaj odloči, ali obiskovalci vidijo spremembo:
/index.html → kratek čas predpomnjenja, pogosto preverjeno
/assets/index-3f9a2c.js → predpomnjeno dolgo časa
/assets/hero-8b41d0.jpg → predpomnjeno dolgo časa
Sodobna orodja za gradnjo, vključno z Vite, dajo datotekam zgoščena imena, na primer hero-8b41d0.jpg. Ko se datoteka spremeni, se spremeni tudi njeno ime, zato stran zahteva povsem novo datoteko, ki je še nobeden predpomnilnik ni videl. Sama HTML stran se predpomni le za kratek čas, zato hitro usmeri obiskovalce na nove datoteke. To je standardni način, da dosežete dolgo predpomnjenje in hkrati sveže posodobitve.
Obrazec za stik je drugačen. Oddaje gredo na strežnik vsakič znova; nikoli se ne smejo predpomniti.
Kaj predpomniti in česa ne
| Običajno predpomniti (dolgo) | Običajno predpomniti kratko | V skupnem CDN-ju ne predpomniti |
|---|---|---|
| Slike, pisave, videoposnetki | HTML strani javnega spletnega mesta | Strani za prijavljene uporabnike, nadzorne plošče |
| JavaScript in CSS z zgoščenimi imeni | Javni podatki API-ja, ki se redko spreminjajo | Vse z osebnimi podatki |
| Prenosljive datoteke, ki se redko spremenijo | Oddaje obrazcev, plačila, vsaka zahteva POST |
Ključni pojmi
| Pojem | Pomen |
|---|---|
| Vir (origin) | Vaš glavni strežnik ali gostitelj, kjer so resnične datoteke. |
| Rob / PoP | Lokacija CDN-ja, ki streže obiskovalcem v bližini. |
| Zadetek / zgrešitev predpomnilnika | Robna lokacija je imela datoteko / jo je morala prenesti iz vira. |
| TTL | Čas življenja — kako dolgo je kopija shranjena. |
| Glava Cache-Control | Navodilo, ki ga vaš strežnik pošlje in pove, ali in kako dolgo sme biti nekaj predpomnjeno. |
| Čiščenje / invalidacija | Ukaz CDN-ju, naj takoj zavrže predpomnjene kopije. |
| Spreminjanje predpomnilnika | Sprememba imena ali naslova datoteke, ko se ta spremeni, da predpomnilniki pridobijo novo. |
| Zakasnitev (latenca) | Zamik zaradi razdalje in omrežnih postaj. |
Za splošnejše predpomnjenje — v brskalnikih, strežnikih in bazah podatkov — glejte kaj je predpomnjenje.
Pogoste zmote
- »CDN naredi vse hitrejše.« Pospeši dostavo datotek. Počasna poizvedba v bazi ali počasen klic umetne inteligence na vašem strežniku ostaja počasen.
- »CDN nadomesti gostovanje.« Postavi se pred vaše gostovanje. Vir še vedno potrebujete.
- »Če sem spletno mesto posodobil, ga vsi takoj vidijo.« Stare kopije lahko še nekaj časa ostanejo v CDN-ju in brskalnikih. Za preverjanje uporabite trdo osveževanje in zgoščena imena datotek.
- »Predpomnjenje je vedno varno.« Predpomnjenje prilagojene strani v skupnem predpomnilniku je resno tveganje za zasebnost. Zasebni odzivi naj bodo označeni kot nepredpomnljivi.
- »CDN-ji so samo za velika podjetja.« Mnogi gostitelji vključijo CDN tudi za majhna spletna mesta brez dodatnega truda.
Kaj vprašati svojega gradnika z umetno inteligenco
- »Ali je pred tem spletnim mestom CDN? Katere datoteke predpomni in kako dolgo?«
- »Poskrbi, da imajo zgrajene datoteke JavaScript, CSS in slike zgoščena imena ter dolge čase predpomnjenja, HTML pa kratkega.«
- »Nikoli ne predpomni strani za prijavljene uporabnike ali odzivov API-ja z osebnimi podatki v skupnem predpomnilniku.«
- »Stisni in premeri slike, da se galerija hitro naloži.«
- »Objavil sem posodobitev, a še vedno vidim staro različico — gre za predpomnilnik brskalnika ali CDN?«
CDN-ji in Mythex
Ko objavite na Mythexu, se statični front-endi namestijo kot statična spletna mesta, dokumentacija pa opozarja, da lahko predpomnilniki CDN-ja po posodobitvi za kratek čas zaostajajo: če po ponovni objavi še vedno vidite staro različico, trdo osvežite javni naslov. Za to ni treba ničesar nastaviti. Če povežete domeno po meri, katere DNS je na Cloudflaru, dokumentacija priporoča, da zapis nastavite na »samo DNS« in ne »proksirano«, da lahko Mythex pravilno izda HTTPS. Glejte kako objaviti in domene po meri v dokumentaciji ter naš vodnik o spletnem gostovanju.
Vprašanja
Kaj je CDN na kratko?
CDN (omrežje za dostavo vsebine) je mreža strežnikov na mnogih lokacijah, ki hranijo kopije datotek vašega spletnega mesta. Obiskovalci dobijo vsebino z lokacije blizu sebi, ne z glavnega strežnika, zato se strani naložijo hitreje, vaš strežnik pa dela manj.
Zakaj po posodobitvi spletnega mesta še vedno vidim staro različico?
Običajno zato, ker je kopija stare datoteke predpomnjena — v CDN-ju, v brskalniku ali v obeh. Trdo osveževanje popravi stran brskalnika; kopije v CDN-ju pretečejo same ali jih je mogoče izbrisati. Orodja za gradnjo se večini težav izognejo tako, da spremenjenim datotekam dajo nova imena.
Ali za majhno spletno mesto potrebujem CDN?
Pogosto ga imate, ne da bi ga izbrali, saj ga mnoge gostiteljske platforme samodejno postavijo pred spletno mesto. Če ga vaša nima in so obiskovalci razporejeni po različnih državah, je dodajanje CDN-ja običajno smiselno.
Ali CDN lahko predpomni podatke moje aplikacije in strani za prijavljene uporabnike?
Lahko predpomni vse, kar sme, zato ga je treba nastaviti previdno. Javne datoteke, kot so slike, skripte in slogi, so idealne. Osebne vsebine ali vsebine za prijavljene uporabnike ne bi smeli predpomniti v skupnem CDN-ju, sicer bi lahko en uporabnik videl podatke drugega.