CDN дегеніміз не? Контентті жеткізу желілері қарапайым түсіндірілген
CDN (контентті жеткізу желісі) — көптеген қалаларға таралған, веб-сайтыңыздың файлдарының көшірмелерін сақтайтын серверлер желісі: суреттер, скрипттер, стиль файлдары, кейде тіпті толық беттер. Біреу сайтыңызға кірген кезде, ол алыстағы бір серверден емес, өзіне жақын жерден қызмет алады. Бұл беттерді тезірек ашады, сіздің серверіңізге түсетін жүктемені азайтады және сайт трафиктің кенет өсуіне төзімді болады.
AI көмегімен құрастырғанда CDN неге маңызды
CDN-ді өзіңіз орнатпауыңыз мүмкін — көптеген хостинг платформалары сайтыңыздың алдына оны автоматты түрде қояды. Бірақ оның әсерін сезесіз:
- Жылдамдық. Тезірек ашылатын беттер келушілерді ұстап қалады және іздеу жүйелері ескеретін факторлардың бірі болып табылады. Қараңыз: сайтыңызды қалай жылдамдатуға болады.
- «Неге менің өзгерісім көрінбей тұр?» Жаңартуды жариялағаннан кейін ескі нұсқаның кэштелген көшірмесі біраз уақыт қалуы мүмкін. Себебін білу көп шатасудың алдын алады.
- Құпиялылық және дұрыстық. Егер CDN дұрыс емес нәрсені кэштесе — бір пайдаланушының деректері бар бетті — келесі келуші оны көруі мүмкін. Нені кэштеуге болатынын және болмайтынын білу дұрыс сұрақтар қоюға көмектеседі.
Күнделікті ұқсастық
Бір нан пекарнясын елге бір дүкеннен сататын елестетіңіз. Әр тұтынушы, қанша алыс болса да, сол бір дүкеннен жеткізуді күтуі керек — ал тығыз күнде кезек өте үлкен болады.
CDN — бұл нанды ел бойынша жергілікті шағын дүкендерде сақтау сияқты. Тұтынушылар оны жақын жерден тез алады, ал негізгі пекарня дүкендерді кезекпен толтыра береді. Тек бір ескерту: пекарня наның рецептін өзгерткенде, дүкендер оларды ауыстыру туралы хабар алмайынша немесе ескі қор мерзімі бітпейінше ескі нанды сата береді.
CDN қалай жұмыс істейді
- Сіздің түпкі көзіңіз. Сайтыңыз негізгі серверде немесе хостинг платформасында тұрады — оны origin деп атайды.
- Edge орындары. CDN көптеген жерлерде серверлер жүргізеді, оларды edge орындары немесе presence points деп атайды.
- Бағыттау. Келуші сайтыңызға сұрау жібергенде, DNS немесе желі маршрутизациясы оны жақын edge-ге жібереді. Қараңыз: домендер мен DNS қалай жұмыс істейді.
- Кэш табылды. Егер сол edge-де файлдың жаңа көшірмесі болса, ол оны бірден жібереді.
- Кэш табылмады. Болмаса, edge оны түпкі көзіңізден алып, келушіге жібереді және келесі адам үшін көшірмесін сақтайды.
- Мерзімнің өтуі. Әр көшірме сіздің серверіңіз жіберетін кэш тақырыптары (cache headers) арқылы бақыланатын белгілі уақыт бойы сақталады, немесе тазартылғанға дейін.
Жұмыс мысалы: суреттері бар портфолио сайты
Фотографтың портфолио сайтында басты бет, 60 үлкен суреті бар галерея және байланыс формасы бар. Түпкі көз Еуропада. Сингапурдағы келуші галереяны ашады.
- CDN-сіз: әр сурет Еуропадан жүреді. Әр сұрау дүние жүзін айналып шығады, сондықтан галерея баяу толады.
- CDN-мен: Сингапур маңындағы алғашқы келуші edge-ді суреттерді алып, сақтауға мәжбүр етеді. Осы аймақтағы кейінгі келушілер оларды жақыннан, әлдеқайда жылдам алады.
Енді фотограф басты беттің негізгі суретін ауыстырып, қайта жариялайды. Келушілер жаңасын көретінін мынаның бәрі анықтайды:
/index.html → қысқа кэш уақыты, жиі тексеріледі
/assets/index-3f9a2c.js → ұзақ уақыт кэштеледі
/assets/hero-8b41d0.jpg → ұзақ уақыт кэштеледі
Vite сияқты заманауи құрастыру құралдары файлдарға hero-8b41d0.jpg сияқты хэштелген атаулар береді. Файл өзгергенде, оның атауы да өзгереді, сондықтан бет ешбір кэш көрмеген жаңа файлды сұрайды. HTML беті тек қысқа уақыт кэштеледі, сондықтан ол келушілерді жаңа файлдарға тез бағыттайды. Бұл ұзақ кэштеу мен жаңа жаңартуларды бірге қамтамасыз етудің стандартты тәсілі.
Байланыс формасы басқаша. Оның жіберілімдері әр уақытта серверге барады; оларды ешқашан кэштеу керек емес.
Нені кэштеу керек, нені жоқ
| Әдетте ұзақ кэштеу | Әдетте қысқа кэштеу | Ортақ CDN-де кэштемеу |
|---|---|---|
| Суреттер, қаріптер, бейнелер | Ашық сайттың HTML беттері | Кірген беттер, басқару панельдері |
| Хэштелген атаулары бар JavaScript және CSS | Сирек өзгеретін ашық API деректері | Жеке деректері бар кез келген нәрсе |
| Сирек өзгеретін жүктеп алатын файлдар | Форма жіберілімдері, төлемдер, кез келген POST сұрауы |
Негізгі терминдер
| Термин | Мағынасы |
|---|---|
| Origin | Негізгі серверіңіз немесе хостыңыз, нақты файлдар сонда тұрады. |
| Edge / PoP | Келушілерге жақын қызмет көрсететін CDN орны. |
| Cache hit / miss | Edge файлды иеленді / оны түпкі көзден алуға тура келді. |
| TTL | Time to live — кэштелген көшірменің қанша уақыт сақталатыны. |
| Cache-Control тақырыбы | Серверіңіз жіберетін, нәрсенің кэштелуге болатынын және қанша уақытқа екенін айтатын нұсқау. |
| Purge / invalidate | CDN-ге кэштелген көшірмелерді дәл қазір тастауды айту. |
| Cache busting | Файл өзгергенде оның атауын немесе URL-ын өзгерту, сонда кэштер жаңасын алады. |
| Latency | Қашықтық пен желі секірістерінен туындайтын кідіріс. |
Жалпы кэштеу туралы — браузерлерде, серверлерде және дерекқорларда — қараңыз: кэштеу дегеніміз не.
Жиі кездесетін түсініспеушіліктер
- «CDN барлығын жылдамдатады.» Ол файлдарды жеткізуді жылдамдатады. Серверіңіздегі баяу дерекқор сұрауы немесе баяу AI шақыруы әлі де баяу.
- «CDN хостингті алмастырады.» Ол сіздің хостингіңіздің алдында тұрады. Түпкі көз әлі де қажет.
- «Сайтты жаңартсам, барлығы бірден көреді.» Ескі көшірмелер CDN-де және браузерлерде қысқа уақытқа қалуы мүмкін. Тексеру үшін қатты жаңартыңыз және хэштелген файл атауларын пайдаланыңыз.
- «Кэштеу әрдайым қауіпсіз.» Жеке беттерді ортақ кэште кэштеу — нақты құпиялылық қаупі. Жеке жауаптар кэштелмейтін деп белгіленуі тиіс.
- «CDN тек ірі компаниялар үшін.» Көптеген хосттар шағын сайттарға оны ешқандай қосымша күш-жігерсіз қосады.
AI құрастырушыңыздан не сұрау керек
- «Осы сайттың алдында CDN бар ма? Ол қандай файлдарды кэштейді және қанша уақытқа?»
- «Құрастырылған JavaScript, CSS және суреттерде хэштелген атаулар мен ұзақ кэш уақыты, ал HTML-де қысқа уақыт болуын қамтамасыз ет.»
- «Кірген беттерді немесе жеке деректері бар API жауаптарын ортақ кэште ешқашан кэштеме.»
- «Галереяның тез жүктелуі үшін суреттерді сығып, өлшемін кішірейт.»
- «Жаңартуды жарияладым, бірақ ескі нұсқаны әлі көремін — бұл браузер кэші ме, әлде CDN бе?»
CDN және Mythex
Mythex-та жариялағанда, статикалық фронтенд статикалық сайттар ретінде орналастырылады, ал құжаттарда CDN кэштері жаңартудан кейін біраз кешігуі мүмкін екені айтылған: қайта жариялағаннан кейін ескі нұсқаны көрсеңіз, ашық URL-ды қатты жаңартыңыз. Мұнда баптайтын ештеңе жоқ. Егер теңшелетін домен қосып, оның DNS-і Cloudflare-де болса, құжаттар жазбаны «proxied» емес, «DNS only» күйіне қоюды сұрайды, сонда Mythex HTTPS-ті дұрыс береді. Қосымша мәлімет құжаттарда қалай жариялау және теңшелетін домендер бөлімдерінде бар, ал кең көлемдегі көрініс үшін веб-хостинг нұсқаулығын оқыңыз.
Сұрақтар
CDN қарапайым тілмен айтқанда не?
CDN (контентті жеткізу желісі) — көптеген жерлерде орналасқан серверлер желісі, олар сайтыңыздың файлдарының көшірмелерін сақтайды. Келушілерге негізгі серверден емес, оларға жақын жерден қызмет көрсетіледі, сондықтан беттер тезірек ашылады және сіздің серверіңіз аз жұмыс істейді.
Сайтты жаңартқаннан кейін неге әлі ескі нұсқасын көремін?
Әдетте ескі файлдың көшірмесі кэште сақталып тұрғандықтан — CDN-де, браузерде немесе екеуінде де. Браузер жағындағы мәселені қатты жаңарту (hard refresh) шешеді; CDN көшірмелері өздігінен мерзімі өткенде жаңарады немесе тазартылуы мүмкін. Құрастыру құралдары өзгерген файлдарға жаңа атау беру арқылы бұл мәселенің көбін болдырмайды.
Шағын сайтқа CDN керек пе?
Көбіне оны таңдамай-ақ иеленесіз, себебі көптеген хостинг платформалары сайттардың алдына CDN-ді автоматты түрде қояды. Егер сізде ол болмаса және келушілеріңіз әртүрлі елдерге таралған болса, оны қосу әдетте пайдалы.
CDN қолданбамның деректерін және кірілген беттерін кэштей ала ма?
Ол рұқсат етілген нәрсенің бәрін кэштей алады, сондықтан оны мұқият баптау керек. Ашық файлдар, мысалы суреттер, скрипттер және стильдер — ең жақсы үміткерлер. Жеке немесе кірген пайдаланушыға арналған мазмұнды ортақ CDN-де әдетте кэштемеу керек, әйтпесе бір пайдаланушы басқаның деректерін көріп қоюы мүмкін.