CDN гэж юу вэ? Content Delivery Network-ийг энгийнээр
CDN (content delivery network) бол олон хотод байрласан серверүүдийн сүлжээ бөгөөд вэбсайтын файлуудын (зураг, скрипт, стилийн файл, заримдаа бүхэл хуудас) хуулбарыг хадгалдаг. Хэн нэгэн таны сайтад зочлоход тэр нь хаанаас ч холгүй ойр байрлалтай серверээс хүлээн авдаг. Ингэснээр хуудсууд хурдан ачаалж, таны өөрийн сервер ачаалалгүй болж, ачаалал их үед сайт тогтвортой ажиллана.
AI-аар бүтээхдээ CDN яагаад чухал вэ
CDN-ийг өөрөө тохируулах шаардлагагүй байж магадгүй, учир нь олон хостинг платформ таны сайтын өмнө автоматаар тавьдаг. Гэвч үр дагаврыг нь мэдрэх болно:
- Хурд. Хурдан ачаалдаг хуудас зочдыг татдаг бөгөөд хайлтын системүүд анхаарах зүйлсийн нэг юм. Сайтаа хурдасгах арга-ыг үзнэ үү.
- "Яагаад миний өөрчлөлт харагдахгүй байна вэ?" Шинэчлэлээ нийтлэсний дараа хуучин хувилбарын кэш богино хугацаанд үлдэж болно. Үүнийг ойлгох нь олон төөрөгдлөөс сэргийлнэ.
- Нууцлал ба зөв байдал. Хэрэв CDN буруу зүйлийг кэшлэвэл, жишээлбэл нэг хэрэглэгчийн мэдээлэлтэй хуудсыг, дараагийн зочин харж болно. Юуг кэшлэх, юуг кэшлэхгүй байх ёстойг мэдвэл зөв асуулт асуух боломжтой.
Өдөр тутмын зүйрлэл
Нэг талхны газар талхаа улсаар хааж нэг дэлгүүрээсээ зардаг гэж төсөөлөөд үз. Холын хүн бүр нэг дэлгүүрээс хүлээж авдаг бөгөөд завгүй өдөр дараалал маш урт болдог.
CDN бол ижил талхыг улсын олон дэлгүүрт нөөцлөхтэй адил. Хэрэглэгчид ойр дэлгүүрээс хурдан авдаг, харин гол талхны газарт зөвхөн дэлгүүрүүдийг хааяа нөөцлөхөд л хангалттай. Гэхдээ талхны жор өөрчлөгдвөл дэлгүүрүүд хуучин талхаа үргэлжлүүлэн зарна, тэд солих зааварыг авах эсвэл хуучин нөөц дуусах хүртэл.
CDN хэрхэн ажилладаг вэ
- Эх сурвалж (origin). Таны сайт үндсэн сервер эсвэл хостинг платформ дээр байдаг; үүнийг origin гэдэг.
- Edge байршлууд. CDN олон газар сервер ажиллуулдаг; үүнийг edge байршил эсвэл point of presence гэдэг.
- Чиглүүлэлт. Зочин хүсэлт илгээхэд DNS эсвэл сүлжээ түүнийг ойр edge рүү чиглүүлдэг. Домэйн ба DNS хэрхэн ажилладаг-ыг үзнэ үү.
- Кэш таарсан (cache hit). Хэрэв тэр edge-д файлын шинэ хуулбар байвал шууд илгээнэ.
- Кэш таарсангүй (cache miss). Үгүй бол edge нь файлыг origin-оос татаж, зочинд илгээгээд дараагийн хүнд зориулж хуулбарыг хадгална.
- Хугацаа дуусах. Хуулбар тодорхой хугацаанд, серверээс илгээсэн cache header-ийн дагуу хадгалагдана, эсвэл цэвэрлэгдэх хүртэл.
Жишээ: зургаар баялаг portfolio сайт
Гэрэл зурагчны portfolio-д нүүр хуудас, 60 том зурагтай галерей, холбоо барих маягт байна. Origin нь Европт байрладаг. Сингапурт байгаа зочин галерейг нээнэ.
- CDN-гүй бол: зураг бүр Европоос ирнэ. Хүсэлт бүр дэлхийн нөгөө тал руу явж байгаа тул галерей удаан дүүрнэ.
- CDN-тэй бол: Сингапурын ойролцоох анхны зочин edge-ээр зургийг татаж хадгална. Тэр бүс нутгийн дараагийн зочид ойрхон, хурдан авна.
Одоо гэрэл зурагчин нүүр хуудасныхаа гол зургийг солиод дахин нийтэлсэн гэж бодъё. Зочдод шинэчлэл харагдахыг тодорхойлох зүйл нь:
/index.html → богино кэш, ихэвчлэн шалгагдана
/assets/index-3f9a2c.js → урт хугацаагаар кэшлэгдсэн
/assets/hero-8b41d0.jpg → урт хугацаагаар кэшлэгдсэн
Vite зэрэг build хэрэгслүүд файлд hash-лэгдсэн нэр өгдөг, жишээ нь hero-8b41d0.jpg. Файл өөрчлөгдөхөд нэр нь өөрчлөгдөж, хуудас ямар ч кэш хараагүй шинэ файл хүсдэг. HTML хуудас өөрөө зөвхөн богино хугацаагаар кэшлэгддэг тул удахгүй шинэ файлууд руу чиглүүлдэг. Ингэснээр урт кэш болон шинэ шинэчлэл хоёуланг нь авах стандарт арга юм.
Холбоо барих маягт өөр. Түүний илгээлтүүд серверт үргэлж очдог; тэдгээрийг хэзээ ч кэшлэх ёсгүй.
Юуг кэшлэх, юуг биш вэ
| Ихэвчлэн урт кэшлэх | Ихэвчлэн богино кэшлэх | Хамтын CDN-д кэшлэхгүй |
|---|---|---|
| Зураг, фонт, видео | Нийтийн сайтын HTML хуудсууд | Нэвтэрсэн хуудсууд, хяналтын самбар |
| Hash-лэгдсэн нэртэй 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 болон хөтөчд богино хугацаанд үлдэж болно. Шалгахдаа hard-refresh хийж, hash-лэгдсэн файлын нэр ашигла.
- "Кэшлэх нь үргэлж аюулгүй." Хувиарлагдсан хуудсыг хамтын кэшлэх нь бодит нууцлалын эрсдэл юм. Хувийн хариултыг кэшлэх боломжгүй гэж тэмдэглэх ёстой.
- "CDN зөвхөн том компаниудад." Олон хост жижиг сайтад нэмэлт хүчин чармайлтгүй нэг нь орсон байдаг.
AI бүтээгчээсээ юу асуух вэ
- "Энэ сайтын өмнө CDN байгаа юу? Ямар файлыг кэшлэж, хэр удаан хадгалдаг вэ?"
- "Build хийсэн JavaScript, CSS, зургууд hash-лэгдсэн нэртэй, урт кэштэй байж, HTML нь богино кэштэй байхыг шалга."
- "Нэвтэрсэн хуудсууд эсвэл хувийн мэдээлэлтэй API хариултыг хамтын кэшид хэзээ ч бүү хадгал."
- "Галерей хурдан ачаалахын тулд зургуудыг шахаж, хэмжээг нь багасга."
- "Шинэчлэл нийтэлсэн ч хуучин хувилбарыг харж байна, энэ нь хөтчийн кэш үү эсвэл CDN-ийнх үү?"
CDN ба Mythex
Mythex дээр нийтлэхэд статик фронтэнд нь статик сайт болгон байршуулагдаж, баримтад CDN кэш шинэчлэлтээс хойш богино хугацаанд хоцрох боломжтой гэж тэмдэглэгдсэн байдаг: дахин нийтэлсний дараа хуучин хувилбар харагдвал нийтийн URL-ээ hard-refresh хийгээрэй. Үүнд тохируулах зүйл байхгүй. Хэрэв захиалгат домэйн холбож, DNS-ээ Cloudflare дээр байрлуулсан бол баримтууд Mythex HTTPS-ээ зөв олгохын тулд бичлэгийг "DNS only" гэж, proxied биш байхаар тохируулахыг зөвлөдөг. Нийтлэх арга болон захиалгат домэйн баримтыг, мөн вэб хостингийн тухай гарын авлагыг үзнэ үү.
Асуултууд
CDN гэж юу вэ, энгийнээр хэлбэл?
CDN (content delivery network) бол олон байршилд байрласан, таны вэбсайтын файлуудын хуулбарыг хадгалдаг серверүүдийн сүлжээ юм. Зочдод үндсэн серверээс биш, ойр байрлалтай серверээс өгдөг тул хуудас хурдан ачаалж, таны серверийн ачаалал багасдаг.
Сайтаа шинэчилсний дараа яагаад хуучин хувилбарыг хараад байгаа юм?
Ихэвчлэн хуучин файлын хуулбар кэшлэгдсэн байдаг: CDN дээр, хөтөч дээр, эсвэл хоёуланд нь. Хөтчийн талд hard refresh хийвэл засдаг; CDN-ийн хуулбарууд өөрөө хугацаа дуусаад арилдаг эсвэл цэвэрлэж болно. Build хэрэгслүүд өөрчлөгдсөн файлд шинэ нэр өгснөөр энэ асуудлаас ихэнхийг нь зайлсхийдэг.
Жижиг вэбсайтад CDN хэрэгтэй юу?
Таны сонгоогүй ч байж магадгүй, учир нь олон хостинг платформ сайтын өмнө CDN автоматаар тавьдаг. Хэрэв байхгүй бөгөөд зочид тань янз бүрийн улсад байрлаж байвал нэмэх нь ихэвчлэн ашигтай.
CDN аппынхаа өгөгдөл болон нэвтэрсэн хуудсуудыг кэшлэж болох уу?
Зөвшөөрөгдсөн бүхнийг кэшлэж чадна, тийм учраас үүнийг сайтар тохируулах ёстой. Зураг, скрипт, стиль зэрэг нийтийн файлууд тохиромжтой. Хувийн эсвэл нэвтэрсэн агуулгыг хамтын CDN-д кэшлэх нь ихэвчлэн буруу, эс бөгөөс нэг хэрэглэгч нөгөөгийнхөө өгөгдлийг харж болно.