Какво е CDN? Мрежи за доставка на съдържание, обяснени просто
CDN (мрежа за доставка на съдържание) е мрежа от сървъри, разпръснати в много градове, които пазят копия на файловете на уебсайта ви — изображения, скриптове, стилови файлове, понякога и цели страници. Когато някой посети сайта ви, той се обслужва от място близо до себе си, а не от далечен сървър. Това прави страниците по-бързи, разтоварва собствения ви сървър и помага сайтът да издържи на внезапни пикове на трафика.
Защо CDN е важна, когато строите с AI
Вероятно никога няма да настроите CDN сами — много хостинг платформи поставят такава пред сайта ви автоматично. Но ще усетите ефекта ѝ:
- Скорост. По-бързо зареждащите се страници задържат посетителите и са един от факторите, които търсачките вземат предвид. Вижте как да направите сайта си по-бърз.
- „Защо промяната ми не се вижда?“ След като публикувате актуализация, кеширано копие на старата версия може да остане още известно време. Ако знаете защо, спестявате много объркване.
- Поверителност и коректност. Ако CDN кешира грешното нещо — страница с нечии лични данни — следващият посетител може да я види. Знанието какво трябва и какво не трябва да се кешира ви помага да задавате правилните въпроси.
Ежедневна аналогия
Представете си пекарна, която продава хляба си в цялата страна от един магазин. Всеки клиент, колкото и далеч да е, трябва да чака доставка от този единствен магазин — а в натоварен ден опашката е огромна.
CDN е като да държите същия хляб в местни магазинчета в цялата страна. Клиентите го взимат наблизо, бързо, а главната пекарна трябва да зарежда магазинчетата от време на време. Уловката: когато пекарната смени рецептата, магазинчетата продават старите хлябове, докато не бъдат подменени или изтече старата им наличност.
Как работи CDN
- Вашият origin. Сайтът ви живее на основния ви сървър или хостинг платформа — наричан origin.
- Edge локации. CDN работи със сървъри на много места, наречени edge локации или points of presence.
- Маршрутизиране. Когато посетител отвори сайта ви, DNS или мрежовото маршрутизиране го насочва към близка edge локация. Вижте как работят домейните и DNS.
- Cache hit. Ако тази edge локация вече има актуално копие на файла, го изпраща веднага.
- Cache miss. Ако няма, edge локацията взима файла от origin, изпраща го на посетителя и пази копие за следващия.
- Изтичане. Всяко копие се пази определено време, управлявано от cache headers, които изпраща сървърът ви, или докато бъде изчистено.
Практически пример: фотографско портфолио
Портфолио на фотограф има начална страница, галерия с 60 големи снимки и форма за контакт. Origin-ът е в Европа. Посетител от Сингапур отваря галерията.
- Без 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 локацията има файла / трябва да го вземе от origin. |
| TTL | Time to live — колко дълго се пази кеширано копие. |
| Cache-Control header | Инструкцията, която сървърът ви изпраща, за това дали и колко дълго нещо може да се кешира. |
| Purge / invalidate | Указание към CDN да изхвърли кешираните копия веднага. |
| Cache busting | Промяна на името или URL на файл, когато се променя, за да вземат кешовете новия. |
| Latency | Забавянето, причинено от разстояние и мрежови преходи. |
За кеширането по-общо — в браузъри, сървъри и бази данни — вижте какво е кеширане.
Чести заблуди
- „CDN прави всичко по-бързо.“ Тя ускорява доставката на файлове. Бавна заявка към базата данни или бавно AI извикване на сървъра ви пак са бавни.
- „CDN замества хостинга.“ Тя стои пред хостинга ви. Пак ви е нужен origin.
- „Ако съм обновил сайта, всички го виждат веднага.“ Старите копия могат да останат за кратко в CDN мрежата и в браузърите. Презаредете принудително, за да проверите, и използвайте хеширани имена на файлове.
- „Кешът винаги е безопасен.“ Кеширането на персонализирана страница в споделен кеш е реален риск за поверителността. Частните отговори трябва да са маркирани като некешируеми.
- „CDN са само за големите компании.“ Много хостове включват такава за малки сайтове без допълнително усилие.
Какво да попитате AI платформата
- „Има ли CDN пред този сайт? Кои файлове кешира и за колко време?“
- „Направи така, че вградените JavaScript, CSS и изображения да имат хеширани имена и дълго кеширане, а HTML да има кратко.“
- „Никога не кеширай страници след вход или API отговори с лични данни в споделен кеш.“
- „Компресирай и преоразмерявай изображенията, за да се зарежда галерията бързо.“
- „Публикувах актуализация, но все още виждам старата версия — това кешът на браузъра ли е, или CDN?“
CDN и Mythex
Когато публикувате в Mythex, статичните фронтенди се внедряват като статични сайтове, а документацията отбелязва, че кешовете на CDN могат да изостават за кратко след актуализация: ако след повторно публикуване още виждате стара версия, презаредете публичния адрес принудително. Нищо не трябва да се конфигурира за това. Ако свържете собствен домейн, чийто DNS е при Cloudflare, документацията препоръчва записът да е „DNS only“, а не проксиран, за да може Mythex да издаде HTTPS правилно. Вижте как се публикува и собствени домейни в документацията, а за по-широката картина — нашето ръководство за уеб хостинг.
Въпроси
Какво е CDN с прости думи?
CDN (мрежа за доставка на съдържание) е мрежа от сървъри на много места, които пазят копия на файловете на уебсайта ви. Посетителите се обслужват от локация близо до тях, вместо от основния ви сървър, така че страниците се зареждат по-бързо, а сървърът ви върши по-малко работа.
Защо все още виждам старата версия на сайта си след актуализация?
Обикновено защото копие на стария файл е кеширано — в CDN мрежата, в браузъра ви или и на двете места. Принудителното презареждане оправя браузъра; копията в CDN изтичат сами или могат да бъдат изчистени. Инструментите за строене избягват повечето от този проблем, като дават на променените файлове нови имена.
Нужна ли ми е CDN мрежа за малък сайт?
Често вече имате такава, без да сте я избрали, защото много хостинг платформи поставят CDN пред сайтовете автоматично. Ако вашата няма такава и посетителите ви са разпръснати в различни държави, добавянето ѝ обикновено си струва.
Може ли CDN да кешира данните на приложението ми и страниците след вход?
Може да кешира всичко, до което има право, затова трябва да се настрои внимателно. Публичните файлове като изображения, скриптове и стилове са идеални. Личното или съдържанието след вход обикновено не трябва да се кешира в споделена CDN мрежа, иначе един потребител може да види данните на друг.