Co to jest CDN: znaczenie, po co go używać i jak podłączyć WordPressa
CDN (Content Delivery Network) to sieć dostarczania treści, która przechowuje pliki z serwera źródłowego na serwerach brzegowych w wielu regionach i odpowiada odwiedzającym z najbliższego serwera. Aby sprawdzić, czy serwery brzegowe odpowiadają z pamięci podręcznej, przejrzeliśmy nagłówki odpowiedzi publicznej usługi udostępniającej biblioteki, takiej jak jsDelivr: plik jQuery był wysyłany z kopii w pamięci podręcznej. Dwa sposoby podłączenia WordPressa, czyli podmianę adresów plików i proxy DNS, porównaliśmy na podstawie oficjalnej dokumentacji.
1️⃣ Znaczenie CDN: serwery brzegowe i serwer źródłowy
POP (Point of Presence) to centrum danych, w którym stoją serwery brzegowe, a żądanie odwiedzającego trafia do najbliższego POP.
Serwer brzegowy, który otrzymał żądanie, od razu odpowiada, jeśli ma zapisany plik; jeśli nie, pobiera plik z serwera źródłowego, odpowiada i zapisuje go na serwerze brzegowym. CloudFront, czyli CDN od AWS, zaczyna wysyłać dane do odwiedzającego, gdy tylko z serwera źródłowego dotrze pierwszy bajt (według oficjalnej dokumentacji AWS).

Na serwerach brzegowych zapisywane są tylko pliki, o które poprosili odwiedzający, więc nawet w przypadku tego samego pliku pierwsze żądanie na każdym serwerze brzegowym trafia aż do serwera źródłowego.
Takie pobieranie plików dopiero wtedy, gdy przychodzi żądanie, to metoda pull; istnieje też metoda push, w której wcześniej wgrywasz pliki do CDN.
2️⃣ Po co CDN: odległość i obciążenie serwera źródłowego
Im dalej od siebie są odwiedzający i serwer, tym dłuższy czas podróży w obie strony (RTT) każdego żądania. Po otwarciu strony oprócz HTML pojawiają się też żądania obrazów, CSS i JavaScriptu, więc gdy odpowiada pobliski serwer brzegowy, czas podróży w obie strony skraca się przy każdym żądaniu.
Żądania obsłużone przez serwer brzegowy nie docierają do serwera źródłowego, dzięki czemu spada też użycie procesora i transfer (przepustowość) serwera źródłowego. Gdy podłączysz DNS przez proxy Cloudflare, adres IP serwera źródłowego nie jest ujawniany, a ataki DDoS są najpierw blokowane w CDN (według oficjalnej dokumentacji Cloudflare).
W serwisie, którego odwiedzający skupiają się w tym samym regionie co serwer źródłowy, zysk z odległości jest niewielki. W takich serwisach większą korzyścią z CDN jest nie krótszy czas odpowiedzi, lecz mniejsze obciążenie serwera źródłowego i oszczędność transferu.
3️⃣ Pliki trafiające do pamięci podręcznej: pliki statyczne i HTML
W ustawieniach domyślnych Cloudflare przechowuje w pamięci podręcznej tylko pliki statyczne, takie jak obrazy, CSS i JavaScript, rozpoznawane po rozszerzeniu (według oficjalnej dokumentacji Cloudflare). HTML stron i JSON są wyłączone z domyślnej pamięci podręcznej, więc nawet po podłączeniu Cloudflare odpowiada na nie serwer źródłowy.
Aby przechowywać w pamięci podręcznej także HTML, musisz utworzyć w CDN osobną regułę. Wyłącz wtedy z reguły strony, których treść różni się w zależności od osoby, na przykład strony zalogowanych użytkowników czy koszyk, aby odwiedzający nie zobaczyli cudzego ekranu.
4️⃣ Podłączenie WordPressa: podmiana adresów plików i proxy DNS
Podłączając CDN do WordPressa, albo zmieniasz tylko adresy plików statycznych na adresy CDN, albo ustawiasz DNS domeny na proxy CDN, aby wszystkie żądania przechodziły przez CDN.
| Sposób | Gdzie się podłącza | Żądania przechodzące przez CDN | IP serwera źródłowego |
|---|---|---|---|
| Podmiana adresów plików | Wpisanie adresu CDN (CNAME) w ustawieniach CDN wtyczki pamięci podręcznej | Pliki statyczne, takie jak obrazy, CSS i JavaScript | Pozostaje publiczny |
| Proxy DNS | Podłączenie rekordów DNS domeny do proxy CDN | Wszystkie żądania HTTP i HTTPS serwisu | Ukryty za CDN |
W metodzie podmiany adresów plików w ustawieniach CDN wtyczki pamięci podręcznej, takiej jak WP Rocket wpisujesz adres (CNAME) podany przez dostawcę CDN. Po jego wpisaniu adresy obrazów, CSS i JavaScriptu w HTML strony zmieniają się na adresy CDN (według oficjalnej dokumentacji WP Rocket). Sam HTML nadal wysyła serwer źródłowy.

W metodzie proxy DNS DNS domeny zarządza dostawca CDN. Cloudflare oferuje też podłączenie proxy bez przenoszenia serwerów nazw: wystarczy dodać rekordy CNAME u obecnego dostawcy DNS. Ta metoda jest dostępna tylko w planach Business i wyższych (według oficjalnej dokumentacji Cloudflare).
5️⃣ Sprawdzanie trafień w pamięci podręcznej: nagłówki cf-cache-status i age
To, czy CDN wysłał plik z pamięci podręcznej, sprawdzasz w nagłówkach odpowiedzi. Poniżej jest polecenie, którym sprawdziliśmy nagłówki odpowiedzi pliku jQuery udostępnianego przez jsDelivr, oraz wynik.
curl -sI https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js | grep -iE "^(cache-control|cf-cache-status|age|server):"cache-control: public, max-age=31536000, s-maxage=31536000, immutable
age: 45920
cf-cache-status: HIT
server: cloudflare[server: cloudflare] oznacza, że tę odpowiedź wysłał serwer brzegowy Cloudflare, a dodawany przez Cloudflare [cf-cache-status: HIT] oznacza odpowiedź z pamięci podręcznej. [age: 45920] pokazuje, że plik jest w pamięci podręcznej od około 12 godzin i 45 minut. [max-age=31536000] to polecenie serwera źródłowego, że plik można przechowywać przez 1 rok.
Dokąd trafia żądanie, gdy zamiast [HIT] pojawia się [MISS], [DYNAMIC] lub [BYPASS], sprawdzisz, klikając przyciski wartości na diagramie poniżej.
cf-cache-status: HITcf-cache-status: MISScf-cache-status: DYNAMICcf-cache-status: BYPASSCache-Control: no-store lub private🔢 FAQ & polecane treści
Cache
Cache: definicja i wszystkie obszary, w których stosuje się buforowanie
Podział obszarów, w których używa się pamięci podręcznej, od przeglądarki po wnętrze serwera, łącznie z pamięcią podręczną serwerów brzegowych CDN.
Varnish
Instalacja i konfiguracja Varnish Cache w Apache i Nginx
Instalacja i konfiguracja pamięci podręcznej reverse proxy Varnish przed Apache i Nginx.
Cloudflare
Ustawienia CDN Cloudflare: plan Pro
Podłączenie Cloudflare do WordPressa metodą proxy DNS, a potem różnica szybkości i ustawienia między planami Free i Pro.
ℹ️ Informacja o linkach partnerskich
Treści tej witryny zawierają linki partnerskie. Jeśli odwiedzający kupi produkt lub usługę przez taki link, witryna otrzymuje od sprzedawcy prowizję. Kwota płacona przy tym przez kupującego (podczas promocji spada↓) nie wzrasta. Podane ceny, rabaty i dostępność odnoszą się do chwili pisania i mogą różnić się od stanu faktycznego, dlatego przed zakupem sprawdź je u sprzedawcy. Produkty wybieramy i oceniamy według własnych kryteriów, a prowizja nie wpływa ani na kolejność prezentacji, ani na treść ocen.