CDN — sayt yoki ilovadagi statik fayllarni foydalanuvchiga yaqin serverlar orqali tezroq yetkazib beradigan tarmoq tizimi. CDN inglizcha Content Delivery Network so‘zlarining qisqartmasi bo‘lib, o‘zbekchada kontent yetkazib berish tarmog‘i degan ma’noni anglatadi.
CDN rasm, video, CSS, JavaScript, font va boshqa fayllarni dunyoning turli hududlaridagi serverlarda saqlab, foydalanuvchiga eng yaqin nuqtadan yetkazadi.
Vazifasi
CDN sayt yoki ilova kontentini tezroq, barqarorroq va samaraliroq yetkazish uchun ishlatiladi.
CDN quyidagi vazifalarni bajaradi:
- statik fayllarni keshlash;
- foydalanuvchiga yaqin serverdan fayl yetkazish;
- asosiy server yuklamasini kamaytirish;
- sayt ochilish tezligini oshirish;
- katta trafikni taqsimlash;
- DDoS hujumlarida himoya qatlamini kuchaytirish;
- media fayllarni tezroq yuklash;
- global auditoriyaga xizmat ko‘rsatish.
Masalan, foydalanuvchi O‘zbekistondan saytga kirsa, CDN rasm yoki JavaScript faylni AQSHdagi asosiy serverdan emas, yaqinroq hududdagi CDN serverdan berishi mumkin.
CDN qanday ishlaydi?
CDN asosiy serverdagi fayllarning nusxasini o‘zining turli hududlardagi serverlarida saqlaydi. Bu serverlar edge server deb ataladi.
Oddiy jarayon:
- foydalanuvchi saytga kiradi;
- brauzer rasm, CSS yoki JavaScript faylni so‘raydi;
- so‘rov CDN tarmog‘iga boradi;
- CDN foydalanuvchiga yaqin edge serverni tanlaydi;
- agar fayl cache’da bo‘lsa, darhol foydalanuvchiga yuboradi;
- agar fayl cache’da bo‘lmasa, asosiy serverdan olib, keyingi so‘rovlar uchun saqlab qo‘yadi.
Shu orqali asosiy serverga tushadigan yuk kamayadi va foydalanuvchi faylni tezroq oladi.
Edge server
Edge server — CDN tarmog‘idagi foydalanuvchiga yaqin joylashgan server. U asosiy serverdagi kontent nusxasini vaqtincha yoki doimiy saqlaydi.
Edge server quyidagilarni yetkazishi mumkin:
- rasm fayllar;
- video fayllar;
- CSS fayllar;
- JavaScript fayllar;
- fontlar;
- PDF va hujjatlar;
- statik HTML sahifalar;
- media kontent.
Edge server foydalanuvchiga geografik jihatdan yaqin bo‘lgani uchun latency kamayadi.
Cache
CDN ishlashida cache asosiy tushunchalardan biridir. Cache — fayl yoki javobni vaqtincha saqlab turish jarayoni.
CDN cache orqali quyidagilarni saqlashi mumkin:
- rasm;
- video;
- CSS;
- JavaScript;
- font;
- API javoblari;
- statik sahifalar;
- yuklab olinadigan fayllar.
Masalan, logotip rasmi ko‘p foydalanuvchi tomonidan ochilsa, CDN uni cache’da saqlaydi va har safar asosiy serverdan olib kelmaydi.
Cache muddati
CDN’da fayl qancha vaqt saqlanishi cache TTL orqali belgilanadi. TTL inglizcha Time To Live so‘zlarining qisqartmasi.
TTL quyidagilarni bildiradi:
- fayl cache’da qancha vaqt turishini;
- qachon asosiy serverdan yangilanishini;
- brauzer va CDN cache siyosatini;
- eski fayl qachon almashtirilishini.
Masalan, logotip rasmi 1 kun cache’da turishi mumkin, lekin tez-tez o‘zgaradigan API javobi 1 daqiqa cache qilinishi mumkin.
CDN va asosiy server
CDN asosiy server o‘rnini to‘liq bosmaydi. Asosiy server sayt yoki ilovaning asosiy manbasi bo‘lib qoladi.
CDN va asosiy server o‘rtasidagi farq:
- Asosiy server — sayt, backend, database yoki fayllarning asl manbasi;
- CDN — shu kontentni nusxalab, foydalanuvchiga tezroq yetkazuvchi tarmoq;
- Asosiy server dinamik logikani bajaradi;
- CDN ko‘pincha statik kontentni cache qiladi;
- CDN asosiy server yuklamasini kamaytiradi.
Masalan, backend API ma’lumotni asosiy serverda hosil qiladi, rasm va JavaScript fayllarni esa CDN yetkazib berishi mumkin.
Static content
CDN ko‘pincha statik kontent uchun ishlatiladi. Statik kontent — har bir foydalanuvchi uchun deyarli bir xil bo‘ladigan fayllar.
Statik kontentga quyidagilar kiradi:
.cssfayllar;.jsfayllar;- rasm fayllar;
- fontlar;
- video fayllar;
- PDF hujjatlar;
- ikonlar;
- frontend build fayllari.
Bunday fayllar tez-tez o‘zgarmagani uchun CDN’da cache qilishga qulay.
Dynamic content
Dinamik kontent har bir foydalanuvchi yoki so‘rovga qarab o‘zgarishi mumkin. Masalan, profil ma’lumotlari, savatcha holati yoki admin panel javoblari dinamik hisoblanadi.
CDN ayrim dinamik kontent bilan ham ishlashi mumkin, lekin bunda cache qoidalari aniq sozlanadi.
Dinamik kontentga misollar:
- foydalanuvchi profili;
- shaxsiy kabinet;
- to‘lov sahifasi;
- savatcha;
- admin panel;
- login holati;
- personal API javoblari.
Dinamik kontent noto‘g‘ri cache qilinsa, bir foydalanuvchining ma’lumoti boshqasiga ko‘rinib qolishi mumkin.
CDN va DNS
CDN odatda domen yoki subdomain orqali ishlaydi. DNS sozlamalarida domen CDN provayderga yo‘naltiriladi.
Masalan:
cdn.example.comstatik fayllar uchun ishlatilishi mumkin;example.comCDN orqali proxy qilinishi mumkin;- CNAME record CDN manziliga yo‘naltiriladi;
- CDN foydalanuvchini eng yaqin edge serverga olib boradi.
DNS CDN tarmog‘i bilan foydalanuvchi o‘rtasidagi yo‘naltirishda muhim rol o‘ynaydi.
CDN va HTTPS
CDN HTTPS bilan ishlashi uchun SSL/TLS sertifikat kerak bo‘ladi. Foydalanuvchi CDN orqali fayl olayotganda ulanish HTTPS orqali himoyalanishi mumkin.
CDN’da HTTPS quyidagilar uchun ishlatiladi:
- statik fayllarni xavfsiz yetkazish;
- mixed content muammosining oldini olish;
- API yoki media kontentni shifrlangan uzatish;
- domen sertifikatini boshqarish;
- foydalanuvchi va CDN o‘rtasidagi aloqani himoyalash.
Ko‘p CDN xizmatlari SSL sertifikatni avtomatik yaratish va yangilash imkoniyatiga ega.
CDN va DDoS
CDN DDoS hujumlariga qarshi qo‘shimcha himoya qatlamini yaratishi mumkin. Chunki foydalanuvchi so‘rovlari avval CDN tarmog‘iga boradi, asosiy server esa bevosita barcha trafikni qabul qilmaydi.
CDN DDoS holatlarida quyidagilarni bajarishi mumkin:
- katta trafikni turli serverlarga taqsimlash;
- zararli so‘rovlarni filtrlash;
- rate limit qo‘llash;
- bot trafikni aniqlash;
- asosiy server IP manzilini yashirish;
- WAF bilan birga ishlash.
CDN web xavfsizligida alohida himoya qatlami sifatida ham ishlatiladi.
CDN provayderlar
CDN xizmatini turli provayderlar taqdim etadi.
Mashhur CDN provayderlar:
- Cloudflare;
- Akamai;
- Amazon CloudFront;
- Fastly;
- Bunny CDN;
- KeyCDN;
- Google Cloud CDN;
- Azure CDN.
Har bir CDN provayderning qamrov hududi, cache qoidalari, xavfsizlik funksiyalari va narxlash modeli farq qilishi mumkin.
Frontend loyihalarda CDN
Frontend loyihalarda CDN build fayllarni foydalanuvchiga tez yetkazish uchun ishlatiladi. Ayniqsa global auditoriyaga ega saytlar CDN’dan ko‘p foydalanadi.
Frontend CDN orqali quyidagilarni tarqatishi mumkin:
- JavaScript bundle;
- CSS fayllar;
- rasm va ikonlar;
- fontlar;
- static assets;
- PWA fayllari;
- statik sahifalar.
Masalan, Nuxt, Next.js yoki Vue loyihasining build fayllari CDN orqali foydalanuvchiga yetkazilishi mumkin.
Backend va API’da CDN
CDN backend API bilan ham ishlashi mumkin. Lekin API javoblari dinamik bo‘lgani uchun cache qoidalari ehtiyotkorlik bilan belgilanadi.
API’da CDN quyidagi holatlarda ishlatilishi mumkin:
- public API javoblarini cache qilish;
- rate limit qo‘llash;
- geografik yaqin server orqali javob berish;
- statik JSON fayllarni tarqatish;
- image optimization;
- API gateway oldida himoya qatlami yaratish.
Masalan, yangiliklar ro‘yxati yoki ommaviy katalog ma’lumotlari qisqa muddat CDN cache’da turishi mumkin.
Bog‘liq tushunchalar
Server, Hosting, DNS, Domen, HTTPS, SSL sertifikat, Cache, Static file, API, Nginx, WAF, DDoS