CDN — Sta je Content Delivery Network i zasto vam treba
Kompletni vodic: kako CDN ubrzava sajt, smanjuje latenciju i stiti od DDoS napada
Sadrzaj
1. Sta je CDN i kako radi
CDN (Content Delivery Network) je mreza servera rasporedjena po celom svetu (edge servers / POP — Points of Presence). Umesto da svaki zahtev ide do vaseg origin servera (mozda u Americi), CDN servira sadrzaj sa najblizeg servera korisniku.
- Korisnik iz Beograda → CDN edge server u Frankfurtu (~20ms) umesto origin u SAD (~150ms)
- Korisnik iz Tokija → CDN edge u Tokiju (~5ms) umesto origin u SAD (~200ms)
- Korisnik iz Njujorka → CDN edge u Njujorku (~3ms) umesto origin u istom gradu (~10ms)
Kako funkcionise (Pull CDN)
- Korisnik zatrazi
vasajt.rs/style.css - DNS resolvuje na CDN edge server (najblizi korisniku)
- Ako edge IMA kesiranu kopiju → odmah vraca (~20ms)
- Ako edge NEMA → zatrazi od origin servera, kesa i vraca korisniku
- Sledeci korisnik u istoj regiji dobija kesiranu verziju odmah
2. Zasto vam treba CDN
| Benefit | Bez CDN-a | Sa CDN-om |
|---|---|---|
| Latencija | 100-300ms (zavisno od lokacije) | 5-30ms (najblizi edge) |
| DDoS zastita | Origin server pada | CDN apsorbuje napad (100+ Tbps) |
| SSL | Morate konfigurisati sami | Automatski besplatan SSL |
| Kompresija | Morate konfigurisati | Automatski Brotli/Gzip |
| HTTP/3 | Kompleksna konfiguracija | Automatski podrzan |
| Skaliranje | Origin se ruzi pod pritiskom | CDN distribuira opterecenje |
| Uptime | Origin down = sajt down | CDN servira kesirani sadrzaj cak i kad origin padne |
3. Popularne CDN usluge
| CDN | Besplatan tier | POP lokacije | DDoS | Najbolje za |
|---|---|---|---|---|
| Cloudflare | Da (odlican!) | 300+ | Da (100+ Tbps) | Sve — univerzalan izbor |
| Vercel Edge | Da (sa hostingom) | ~70 | Osnovno | Next.js / JAMstack sajtove |
| AWS CloudFront | 1TB/mesec free tier | 450+ | AWS Shield | Enterprise, AWS ekosistem |
| Fastly | Ne | 90+ | Da | Real-time log, edge compute |
| Bunny.net | 14 dana trial | 120+ | Da | Najjeftiniji ($0.01/GB) |
| Netlify Edge | Da (sa hostingom) | ~40 | Osnovno | Staticke sajtove, JAMstack |
4. Push vs Pull CDN
| Tip | Kako radi | Primer | Prednosti | Mane |
|---|---|---|---|---|
| Pull CDN | CDN automatski vuche sa origin servera kad korisnik zatrazi | Cloudflare, Vercel, Bunny | Jednostavno, automatsko | Prva poseta moze biti spora (cache miss) |
| Push CDN | Vi rucno uploadujete fajlove na CDN | AWS S3 + CloudFront, Bunny Storage | Potpuna kontrola | Zahteva CI/CD integraciju |
Za vecinu sajtova Pull CDN je bolji izbor — nema potrebe za rucnim upload-om, CDN se sam brine o kesiranju.
5. CDN za staticke vs dinamicke sajtove
Staticki sajtovi (HTML/CSS/JS)
- CDN kesa SVE — HTML, CSS, JS, slike
- Origin server skoro nikad ne prima zahtev
- Perfektan use case za CDN — 95%+ cache hit rate
- Primer: blog, landing page, dokumentacija
Dinamicki sajtovi (API, baza)
- CDN kesa staticke resurse (CSS, JS, slike) ali NE HTML/API odgovore
- HTML se generise na origin serveru pri svakom zahtevu
- I dalje velika korist: kompresija, SSL, DDoS zastita
- Opcija: Edge Functions (Cloudflare Workers, Vercel Edge) — dinamicki sadrzaj na edge-u
Cache-Control: s-maxage=60, stale-while-revalidate=86400 — CDN servira stari kes odmah i azurira u pozadini. Vise o cache strategijama u nasem HTTP Caching vodicu.6. Cloudflare besplatan setup (korak po korak)
- Registrujte se na dash.cloudflare.com (besplatno)
- Kliknite "Add a Site" i unesite vas domen (npr. vasajt.rs)
- Izaberite "Free" plan
- Cloudflare skenira vase DNS zapise — proverite da su tacni
- Promenite nameservere kod vaseg registrara na Cloudflare-ove (npr. ns1.cloudflare.com)
- Sacekajte propagaciju (5 min do 24h, obicno ~30 min)
- Gotovo! Cloudflare sada rutira sav saobracaj kroz svoju mrezu
Posle setup-a, ukljucite
- SSL/TLS: Encryption mode → "Full (strict)" za najjacu enkripciju
- Always Use HTTPS: Edge Certificates → ON
- Brotli: Speed → Optimization → Brotli: ON
- Auto Minify: Speed → Optimization → HTML/CSS/JS: ON
- HTTP/3: Network → HTTP/3: ON
- Browser Cache TTL: Caching → postavite na 1 year za staticke resurse
7. Cache invalidation na CDN-u
Kad promenite sajt, CDN i dalje servira staru verziju dok kes ne istekne. Metode za forsiranje azuriranja:
- Purge by URL: Cloudflare → Caching → Purge → Custom Purge → unesite URL-ove
- Purge Everything: Cisti ceo CDN kes — koristite retko jer uzrokuje cache miss storm
- API Purge: Automatizovano u CI/CD —
curl -X POST "https://api.cloudflare.com/client/v4/zones/{id}/purge_cache" -d '{"purge_everything":true}' - Cache-busting: Hash u filename-u (style.a1b2c3.css) — novi fajl = novi URL = CDN automatski preuzima. Detaljnije u HTTP Caching vodicu.
- Cache Tags: Enterprise feature — tagujete resurse i purge-ujete po tagu
s-maxage=0 ili no-cache za HTML, a dugotrajno kesiranje samo za staticke fajlove sa hash-om u imenu.8. CDN i SEO
- Brzina = bolji rang: Google koristi page speed kao faktor rangiranja. CDN smanjuje TTFB za 50-70% sto direktno poboljsava LCP (Core Web Vital).
- Uptime = bolji crawling: Ako je sajt cesto nedostupan, Googlebot dolazi redje. CDN obezbeduje visoku dostupnost.
- HTTPS besplatno: SSL je faktor rangiranja od 2014. CDN daje besplatan SSL.
- Mobile speed: CDN dramaticno ubrzava mobilne korisnike (60%+ pretraga) jer smanjuje latenciju.
- Canonical i redirect: Pazite da CDN pravilno prosleđuje canonical URL-ove i redirecte (www/non-www, HTTP/HTTPS).
9. Najcesce greske
- Kesiranje HTML-a predugo — korisnici vide staru verziju sajta. HTML:
no-cacheilis-maxage=0. - Zaboravljen Purge posle deploy-a — CDN servira stare CSS/JS. Koristite hash u filename-u.
- Mixed content — HTTP resursi na HTTPS sajtu. CDN SSL ne resava ovo automatski — sve reference moraju biti HTTPS.
- Origin IP exposed — Direktan pristup IP adresi origin servera zaobilazi CDN. Blokirajte pristup po IP-u.
- Preskupljenje — Nepotrebni purge_everything → svi korisnici dobijaju cache miss odjednom → origin preopterecen.
- CDN za lokalni sajt — Ako su svi korisnici u istom gradu kao server, CDN donosi minimalan benefiti (ali DDoS zastita vredi).
- Websocket problemi — Neki CDN-ovi ne podrzavaju WebSocket bez konfiguracije. Cloudflare ga podrzava na Free planu.
10. Reference i resursi
- Cloudflare — Developer Docs
- AWS CloudFront — Documentation
- Vercel — Edge Network
- Bunny.net — CDN
- web.dev — Content Delivery Networks
- HTTP Archive Web Almanac — CDN
- CDN Planet — CDN Comparison
CDN — What is Content Delivery Network and Why You Need It
Complete guide: how CDN speeds up your site, reduces latency and protects from DDoS
Table of Contents
1. What is CDN and how it works
CDN is a network of servers worldwide (edge servers / POP). Instead of every request going to your origin server, CDN serves content from the nearest server to the user.
2. Why you need CDN
| Benefit | Without CDN | With CDN |
|---|---|---|
| Latency | 100-300ms | 5-30ms |
| DDoS protection | Origin crashes | CDN absorbs (100+ Tbps) |
| SSL | Manual config | Free automatic SSL |
| Compression | Manual config | Auto Brotli/Gzip |
| Uptime | Origin down = site down | CDN serves cached even if origin is down |
3. Popular CDN services
| CDN | Free tier | POPs | Best for |
|---|---|---|---|
| Cloudflare | Yes (great!) | 300+ | Universal choice |
| Vercel Edge | Yes (with hosting) | ~70 | Next.js / JAMstack |
| AWS CloudFront | 1TB/mo free | 450+ | Enterprise, AWS |
| Bunny.net | 14-day trial | 120+ | Cheapest ($0.01/GB) |
4. Push vs Pull CDN
Pull: CDN automatically fetches from origin on first request (Cloudflare, Vercel). Simple, automatic.
Push: You manually upload files to CDN (S3 + CloudFront). Full control, needs CI/CD.
Pull CDN is better for most sites.
5. Static vs dynamic sites
Static: CDN caches everything — 95%+ hit rate. Perfect use case.
Dynamic: CDN caches static assets (CSS, JS, images) but not HTML/API. Still valuable: compression, SSL, DDoS. Option: Edge Functions for dynamic content at edge.
6. Free Cloudflare setup (step by step)
- Sign up at dash.cloudflare.com (free)
- Click "Add a Site" and enter your domain
- Select "Free" plan
- Cloudflare scans DNS records — verify they're correct
- Change nameservers at your registrar to Cloudflare's
- Wait for propagation (~30 min)
- Enable: SSL Full (strict), Always HTTPS, Brotli, Auto Minify, HTTP/3
7. Cache invalidation on CDN
- Purge by URL — clear specific URLs
- Purge Everything — use rarely (causes cache miss storm)
- API Purge — automate in CI/CD
- Cache-busting — hash in filename (best approach). More in HTTP Caching guide.
s-maxage=0 for HTML, long-term caching only for static files with hash in name.8. CDN and SEO
- Speed = better ranking — CDN reduces TTFB by 50-70%, improving LCP
- Uptime = better crawling — Googlebot crawls more when site is reliable
- Free HTTPS — SSL is a ranking factor since 2014
- Mobile speed — dramatically faster for 60%+ of searches
9. Common mistakes
- Caching HTML too long — users see stale content
- Forgotten purge after deploy — use hash in filenames
- Mixed content — HTTP resources on HTTPS site
- Origin IP exposed — direct IP access bypasses CDN
- Excessive purge_everything — causes cache miss storm on origin
10. References and resources
- Cloudflare Docs
- AWS CloudFront Docs
- Vercel Edge Network
- Bunny.net CDN
- web.dev — CDN
- CDN Planet — Comparison