Vadovai

Kas yra CDN? Turinio pristatymo tinklai paprastai paaiškinti

CDN (turinio pristatymo tinklas) – tai daugelyje miestų išdėstytų serverių tinklas, kuriuose laikomos jūsų svetainės failų kopijos: paveikslėliai, scenarijai, stilių failai, kartais ir visi puslapiai. Kai kas nors apsilanko jūsų svetainėje, turinys pateikiamas iš vietos, esančios arti jo, o ne iš toli esančio vieno serverio. Taip puslapiai įsikrauna greičiau, sumažėja apkrova jūsų pačių serveriui ir svetainė lengviau atlaiko lankytojų antplūdžius.

Kodėl CDN svarbūs kuriant su DI

Galbūt niekada patys nekonfigūruosite CDN – daugelis hostingo platformų jį automatiškai įdeda priešais jūsų svetainę. Tačiau jo poveikį pajusite:

  • Greitis. Greičiau įsikraunantys puslapiai išlaiko lankytojus, o paieškos sistemos tai vertina kaip vieną iš veiksnių. Žr. kaip padaryti svetainę greitesnę.
  • „Kodėl mano pakeitimas nematomas?“ Paskelbus atnaujinimą, senos versijos talpykloje kopija gali išlikti trumpam. Žinojimas, kodėl taip vyksta, sutaupo daug painiavos.
  • Privatumas ir teisingumas. Jei CDN įsimena ne tą turinį – puslapį su vieno vartotojo duomenimis – kitas lankytojas gali jį pamatyti. Žinant, kas turi ar neturi būti talpinama, lengviau užduoti teisingus klausimus.

Kasdienis palyginimas

Įsivaizduokite kepyklą, kuri parduoda duoną visoje šalyje iš vienos parduotuvės. Kiekvienas klientas, kad ir kaip toli gyventų, turi laukti pristatymo iš tos vienintelės parduotuvės – o gausiu metu eilė būna milžiniška.

CDN – tai lyg ta pati duona būtų sandėliuojama vietinėse kampinėse parduotuvėse visoje šalyje. Klientai ją pasiima netoliese, greitai, o pagrindinei kepyklai reikia tik retkarčiais papildyti kampines parduotuves. Yra ir gaudynė: kai kepykla pakeičia receptą, kampinės parduotuvės dar kurį laiką pardavinėja seną duoną, kol jos nepakeičiamos arba senos atsargos nepasibaigia.

Kaip veikia CDN

  1. Jūsų šaltinis. Jūsų svetainė gyvena pagrindiniame serveryje arba hostingo platformoje – tai vadinama šaltiniu (origin).
  2. Kraštinės vietos. CDN veikia serveriai daugelyje vietų, vadinamų kraštinėmis vietomis (edge locations) arba buvimo taškais (PoP).
  3. Maršrutavimas. Kai lankytojas užklausia jūsų svetainę, DNS ar tinklo maršrutavimas jį nukreipia į artimiausią kraštinę vietą. Žr. kaip veikia domenai ir DNS.
  4. Talpyklos pataikymas (cache hit). Jei ta kraštinė vieta jau turi šviežią failo kopiją, ji iš karto ją išsiunčia.
  5. Talpyklos praleidimas (cache miss). Jei ne, kraštinė vieta paima failą iš šaltinio, išsiunčia lankytojui ir pasilieka kopiją kitam žmogui.
  6. Galiojimo pabaiga. Kiekviena kopija laikoma nustatytą laiką, valdomą talpyklos antraštėmis (cache headers), kurias siunčia jūsų serveris, arba kol ji išvaloma.

Darbo pavyzdys: fotografo portfelio svetainė

Fotografo portfelyje yra pradžios puslapis, galerija su 60 didelių nuotraukų ir kontaktų forma. Šaltinis yra Europoje. Lankytojas iš Singapūro atidaro galeriją.

  • Be CDN: kiekviena nuotrauka keliauja iš Europos. Kiekviena užklausa nukeliauja per visą pasaulį, todėl galerija pildosi lėtai.
  • Su CDN: pirmasis lankytojas netoli Singapūro priverčia ten esančią kraštinę vietą paimti ir išsaugoti nuotraukas. Visi vėlesni tos regiono lankytojai jas gauna iš netoliese esančios vietos, daug greičiau.

Dabar fotografas pakeičia pradžios puslapio pagrindinę nuotrauką ir publikuoja iš naujo. Štai kas lemia, ar lankytojai ją pamatys:

/index.html                    → trumpas talpyklos laikas, tikrinamas dažnai
/assets/index-3f9a2c.js        → talpinamas ilgai
/assets/hero-8b41d0.jpg        → talpinamas ilgai

Šiuolaikiniai kūrimo įrankiai, įskaitant Vite, failams suteikia maišytus pavadinimus (hashed names), pavyzdžiui hero-8b41d0.jpg. Kai failas pasikeičia, keičiasi ir jo pavadinimas, todėl puslapis prašo visiškai naujo failo, kurio joks talpykla dar nematė. Pats HTML puslapis talpinamas tik trumpai, todėl netrukus nukreipia lankytojus į naujus failus. Tai įprastas būdas gauti ir ilgą talpinimą, ir šviežius atnaujinimus.

Kontaktų forma kitokia. Jos pateikimai visada siunčiami į serverį; jų niekada neturėtų būti talpinama.

Ką talpinti, o ko ne

Paprastai talpinti ilgaiPaprastai talpinti trumpaiNeįsimenti bendrame CDN
Paveikslėliai, šriftai, vaizdo įrašaiViešos svetainės HTML puslapiaiPrisijungus pasiekiami puslapiai, skydeliai
JavaScript ir CSS su maišytais pavadinimaisViešieji API duomenys, kurie retkarčiais keičiasiViskas, kas turi asmens duomenų
Atsisiunčiami failai, kurie retai keičiasiFormų pateikimai, mokėjimai, bet kokia POST užklausa

Pagrindinės sąvokos

SąvokaReikšmė
Šaltinis (origin)Jūsų pagrindinis serveris ar hostas, kuriame tikrieji failai.
Kraštinė vieta / PoPCDN vieta, aptarnaujanti lankytojus netoliese.
Talpyklos pataikymas / praleidimasKraštinė vieta turėjo failą / turėjo jį paimti iš šaltinio.
TTLGyvavimo laikas – kiek laiko saugoma talpinama kopija.
Cache-Control antraštėServerio siunčiama instrukcija, ar ir kiek laiko kažką galima talpinti.
Išvalymas / invalidacijaCDN nurodymas iškart išmesti talpinamas kopijas.
Talpyklos „apgavimas“ (cache busting)Failo pavadinimo ar URL keitimas, kai failas pasikeičia, kad talpyklos gautų naują.
Vėlavimas (latency)Atstumo ir tinklo šuolių sukeltas delsimas.

Apie talpyklą apskritai – naršyklėse, serveriuose ir duomenų bazėse – skaitykite kas yra talpykla.

Dažniausi klaidingi įsitikinimai

  • „CDN padaro viską greitesnį.“ Jis pagreitina failų pristatymą. Lėta duomenų bazės užklausa ar lėtas DI kvietimas jūsų serveryje lieka lėti.
  • „CDN pakeičia hostingą.“ Jis stovi priešais jūsų hostingą. Vis tiek reikia šaltinio.
  • „Jei atnaujinau svetainę, visi ją iš karto mato.“ Senos kopijos gali trumpam išlikti CDN ir naršyklėse. Tikrinkite priverstiniu atnaujinimu ir naudokite maišytus failų pavadinimus.
  • „Talpinimas visada saugus.“ Personalizuoto puslapio talpinimas bendrame talpykloje yra tikra privatumo rizika. Privatūs atsakymai turėtų būti pažymėti kaip netalpinami.
  • „CDN skirti tik didelėms įmonėms.“ Daugelis hostų mažoms svetainėms įtraukia CDN be papildomų pastangų.

Ko klausti savo DI kūrimo įrankio

  • „Ar šios svetainės priekyje yra CDN? Kuriuos failus jis talpina ir kiek laiko?“
  • „Užtikrink, kad sukurti JavaScript, CSS ir paveikslėlių failai turėtų maišytus pavadinimus ir ilgus talpinimo laikus, o HTML – trumpą.“
  • „Niekada netalpink prisijungusių puslapių ar API atsakymų su asmens duomenimis bendroje talpykloje.“
  • „Suspausk ir pamažink paveikslėlius, kad galerija įsikrautų greitai.“
  • „Publikavau atnaujinimą, bet vis dar matau seną versiją – tai naršyklės talpykla ar CDN?“

CDN ir Mythex

Publikuodami Mythex platformoje, statiniai frontend'ai diegiami kaip statinės svetainės, o dokumentacijoje nurodyta, kad CDN talpyklos gali trumpam vėluoti po atnaujinimo: jei po publikavimo iš naujo vis dar matote seną versiją, priverstinai atnaujinkite viešąjį URL. Tam nieko konfigūruoti nereikia. Jei prijungiate pasirinktinį domeną, kurio DNS valdomas Cloudflare, dokumentacija prašo įrašą nustatyti į „tik DNS“ (DNS only), o ne per tarpinį serverį (proxied), kad Mythex galėtų teisingai išduoti HTTPS. Žr. kaip publikuoti ir pasirinktinius domenus dokumentacijoje bei mūsų vadovą apie web hostingą.

Klausimai

Kas yra CDN paprastais žodžiais?

CDN (turinio pristatymo tinklas) – tai daugelyje vietų išdėstytų serverių tinklas, kuriuose laikomos jūsų svetainės failų kopijos. Lankytojams turinys pateikiamas iš vietos, esančios arti jų, o ne iš pagrindinio serverio, todėl puslapiai įsikrauna greičiau, o jūsų serveris dirba mažiau.

Kodėl atnaujinus svetainę vis dar matau senąją versiją?

Dažniausiai todėl, kad senojo failo kopija yra talpykloje – CDN, naršyklėje arba abiejose. Naršyklės pusėje padeda priverstinis atnaujinimas; CDN kopijos pasibaigia pačios arba gali būti išvalytos. Kūrimo įrankiai daugumą šių problemų išvengia suteikdami pakeistiems failams naujus pavadinimus.

Ar mažai svetainei reikia CDN?

Dažnai jis jau veikia, nors jo nepasirinkote, nes daugelis hostingo platformų automatiškai įdeda CDN priešais svetaines. Jei jūsų neturite, o lankytojai išsibarstę po skirtingas šalis, jo pridėjimas paprastai verta.

Ar CDN gali talpinti mano programos duomenis ir prisijungusių vartotojų puslapius?

Jis gali talpinti viską, ką jam leidžiama, todėl jį reikia nustatyti labai atsargiai. Viešieji failai, pavyzdžiui paveikslėliai, scenarijai ir stiliai, tinka idealiai. Asmeninio ar prisijungusiems vartotojams skirto turinio bendrame CDN paprastai neturėtų būti talpinama, kitaip vienas vartotojas galėtų pamatyti kito duomenis.

Mythex · Pricing · Kurkite bet ką su dirbtiniu intelektu · Svetainių ir programėlių šablonai · Mythex palyginimas · Programėlių kūrimo su dirbtiniu intelektu žodynėlis · Nemokami programėlių kūrimo su dirbtiniu intelektu įrankiai · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 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 简体中文 繁體中文(香港) 繁體中文(台灣)