CDN (Content Delivery Network) to rozproszona geograficznie sieć serwerów, które przechowują kopie Twoich treści i serwują je użytkownikowi z lokalizacji położonej najbliżej niego. Zamiast zmuszać kogoś z Warszawy do pobierania obrazków z serwera w Teksasie, CDN podaje je z węzła w Polsce albo Niemczech. Efekt: krótszy czas ładowania, mniejsze opóźnienie (latency) i serwer źródłowy (origin), który nie pada przy pierwszym większym ruchu.
Jak to działa
Pojedyncze serwery CDN nazywamy PoP (Point of Presence) albo edge servers — bo stoją „na brzegu” sieci, blisko użytkownika. Gdy ktoś otwiera Twoją stronę, statyczne zasoby (zdjęcia, CSS, JS, pliki wideo) lecą z najbliższego węzła, a nie z origin. Przy pierwszym żądaniu edge pobiera plik z origin i go cache’uje (cache miss), a kolejni użytkownicy z okolicy dostają go już z pamięci podręcznej (cache hit) — błyskawicznie.
O tym, jak długo plik leży w cache, decyduje nagłówek Cache-Control oraz TTL (Time To Live). Nowoczesne CDN-y robią dużo więcej niż samo cache’owanie: kompresują pliki (Brotli, gzip), terminują TLS, działają jako warstwa ochrony przed atakami DDoS i potrafią uruchamiać kod na brzegu (edge functions/workers).
Przykład z praktyki
Najpopularniejszy darmowy wariant to Cloudflare. Przepinasz nameservery domeny na Cloudflare, włączasz proxy (pomarańczowa chmurka) i Twój ruch idzie przez ich sieć bez dotykania kodu aplikacji. Inni gracze to Fastly, Amazon CloudFront, Akamai czy bunny.net.
Czy plik przyszedł z cache, sprawdzisz w nagłówkach odpowiedzi:
curl -I https://twojadomena.pl/style.css
Szukasz cf-cache-status: HIT (Cloudflare) albo X-Cache: Hit (CloudFront). MISS oznacza, że edge musiał sięgnąć do origin.
Częste błędy i mity
- „CDN przyspieszy wszystko” — nie. Treści dynamiczne (spersonalizowane, generowane per request) zwykle nie powinny być cache’owane. CDN świeci na statykach.
- Cache, który nie chce zniknąć — wgrywasz nowy
style.css, a użytkownicy widzą stary, bo siedzi w cache. Rozwiązanie: cache busting (np.style.css?v=2albo hash w nazwie pliku) lub ręczny purge. - Cache’owanie wrażliwych danych — ustawienie publicznego cache na endpoint z danymi zalogowanego usera potrafi wyświetlić cudze dane obcej osobie. Klasyk i koszmar.
Pojęcia powiązane
cache, origin server, latency, TTL, Cache-Control, edge computing, DNS, DDoS, TLS, reverse proxy.