1.  [Strona główna](/) ›
2.  [Baza wiedzy](/baza-wiedzy/) ›
3.  BunnyCDN - konfiguracja CDN

# BunnyCDN - konfiguracja Pull Zone, SSL i optymalizacja WordPress

Opublikowano: 10 kwietnia 2026 · Kategoria: Wydajność / CDN

⚡ W skrócie · 9 min czytania

-   BunnyCDN krok po kroku: tworzenie Pull Zone, konfiguracja SSL, Bunny Rules (cache rules), integracja z WordPress (plugin CDN Enabler/Bunny.net), porównanie z Cloudflare pod kątem ceny i wydajności.
-   Tworzenie Pull Zone - konfiguracja podstawowa.
-   Custom Hostname i SSL.
-   Bunny Rules - zaawansowane reguły cache.
-   Integracja z WordPress - plugin Bunny.net.

BunnyCDN to europejski CDN (Słowenia) z konkurencyjnymi cenami, prostym panelem i ponad 120 serwerami brzegowymi. W porównaniu do Cloudflare Free, BunnyCDN faktycznie cachuje treść i płacisz tylko za transfer - bez dodatkowych limitów. Ten artykuł pokazuje jak skonfigurować Pull Zone dla dowolnej strony, włączyć SSL, ustawić reguły cache przez Bunny Rules i zintegrować CDN z WordPress przez oficjalny plugin.

## Tworzenie Pull Zone - konfiguracja podstawowa

Pull Zone to konfiguracja CDN wskazująca na twój serwer źródłowy (origin). BunnyCDN będzie pobierał z originu i cachował na swoich serwerach brzegowych.

1.  Zaloguj się na **panel.bunny.net** i przejdź do **CDN → Pull Zones → Add Pull Zone**.
2.  Wpisz nazwę (np. `mysite-cdn`) i Origin URL (adres twojego serwera, np. `https://mysite.example.com`).
3.  Wybierz regiony - Europa zawsze aktywna, pozostałe opcjonalnie (wyższy koszt/GB).
4.  Po stworzeniu dostaniesz URL CDN w formacie `mysite-cdn.b-cdn.net` - możesz go użyć bezpośrednio lub dodać własną domenę (Custom Hostname).

## Custom Hostname i SSL

Zamiast `*.b-cdn.net` możesz używać własnej subdomeny jak `cdn.example.com`. BunnyCDN oferuje darmowy SSL przez Let's Encrypt lub możesz wgrać własny certyfikat.

```
# 1. W panelu BunnyCDN: Pull Zone → Hostnames → Add Hostname
# Wpisz: cdn.example.com

# 2. W DNS swojej domeny dodaj rekord CNAME:
# cdn.example.com → mysite-cdn.b-cdn.net

# 3. W BunnyCDN: Enable Free Certificate (Let's Encrypt) lub Upload Custom
# Let's Encrypt: automatyczne odnawianie co 60 dni

# 4. Wymusz HTTPS w ustawieniach Pull Zone:
# Security → Force SSL: ON

# 5. Sprawdz SSL
curl -I https://cdn.example.com/wp-content/uploads/logo.png
# Oczekiwany header: cdn-cache: HIT (przy pierwszym zapytaniu zwykle MISS)
```

## Bunny Rules - zaawansowane reguły cache

Bunny Rules to system reguł warunkowych - podobny do Cloudflare Rules. Pozwala ustawić własne TTL, wymuszać/blokować cache, przekierowywać, modyfikować nagłówki i optymalizować obrazy. Konfiguracja w panelu: Edge Rules.

-   **Długi TTL dla statycznych zasobów** - pliki CSS/JS/images z hash w nazwie (fingerprinting) mogą mieć TTL=1rok. Reguła: URL path matches `*.js` lub `*.css` → Cache TTL = 31536000s.
-   **Pomijaj cache dla API** - Reguła: URL path starts with `/api/` → Bypass Cache.
-   **Blokuj hotlinking** - Reguła: Request Header Referer does not match `example.com` AND URL path ends with `.jpg` → Block Request.
-   **Przekierowanie www → bez-www** - Reguła: Hostname matches `www.example.com` → Redirect to `https://example.com/${PathAndQuery}`.

```
# Bunny Rules przez API (REST) - przyklad zmiany TTL
curl -X POST "https://api.bunny.net/pullzone/TWOJ_ZONE_ID/edgerules/addOrUpdate" \
  -H "AccessKey: TWOJ_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "Enabled": true,
    "Description": "Long TTL for images",
    "Triggers": [
      {
        "Type": 0,
        "PatternMatchingType": 0,
        "PatternMatches": ["*.jpg", "*.png", "*.webp", "*.gif"]
      }
    ],
    "Actions": [
      {
        "Type": 9,
        "Parameter1": "31536000"
      }
    ]
  }'
```

## Integracja z WordPress - plugin Bunny.net

Oficjalny plugin **Bunny.net** (dawniej CDN Enabler) automatycznie przepisuje URL statycznych zasobów na adresy Pull Zone. Instalacja przez panel WP-Admin:

```
# WP-Admin → Plugins → Add New → szukaj "Bunny.net"
# Zainstaluj i aktywuj plugin "Bunny.net" (cdn.bunny.net)

# Konfiguracja: Settings → Bunny.net CDN
# Pull Zone Hostname: cdn.example.com  (lub mysite-cdn.b-cdn.net)
# Rewrite URLs for:
#   - wp-content/uploads  ✓  (media biblioteki WP - bezwzględnie)
#   - wp-content/themes   ✓  (CSS/JS motywu)
#   - wp-content/plugins  ✓  (zasoby pluginow)
# Excluded file types: php (nie przepisuj skryptow PHP)

# Weryfikacja: sprawdz źródło strony
curl -s https://example.com | grep -o 'cdn.example.com[^"]*' | head -5
# Oczekiwany wynik: URL obrazow przepisane na cdn.example.com/...
```

```
# Alternatywnie: manualna konfiguracja przez wp-config.php (bez pluginu)
# Dodaj do wp-config.php:

define('WP_CONTENT_URL', 'https://cdn.example.com/wp-content');

# LUB: przepisanie przez .htaccess (Apache)
# RewriteEngine On
# RewriteCond %{HTTP_REFERER} !^https://cdn.example.com [NC]
# RewriteRule ^wp-content/uploads/(.*) https://cdn.example.com/wp-content/uploads/$1 [R=301,L]
```

### BunnyCDN z LiteSpeed Cache lub WP Rocket

Jeśli strona ma już wtyczkę cache, zwykle nie potrzebujesz osobnego pluginu Bunny.net do samego przepisywania adresów. Obie popularne wtyczki mają pole na adres CDN i same podmieniają URL zasobów statycznych:

-   **LiteSpeed Cache** - zakładka CDN, opcja _CDN Mapping_: wpisujesz adres Pull Zone (np. `https://cdn.twojadomena.pl/`) i zaznaczasz, które typy plików (obrazy, CSS, JS) mają iść przez CDN. Cache HTML nadal obsługuje serwer LiteSpeed.
-   **WP Rocket** - zakładka CDN: włączasz CDN i w polu CNAME podajesz hostname Pull Zone. Szczegóły ustawień wtyczki opisujemy w poradniku [WP Rocket - konfiguracja cache](/baza-wiedzy/wp-rocket-cache-konfiguracja/).

Zasada praktyczna: adresy na CDN przepisuje tylko jedno narzędzie, nie plugin Bunny.net i WP Rocket jednocześnie.

## Ustawienia cache w Pull Zone: Cache Expiration Time i Browser Cache

Zanim zaczniesz pisać Edge Rules, sprawdź dwa podstawowe ustawienia w zakładce **Caching** Pull Zone.

-   **Cache Expiration Time** - jak długo plik leży w cache serwera brzegowego. Domyślnie BunnyCDN respektuje nagłówki `Cache-Control` wysyłane przez origin. Możesz je nadpisać stałą wartością, co przydaje się, gdy hosting wysyła krótkie albo zerowe czasy cache dla plików statycznych.
-   **Browser Cache Expiration Time** - jak długo przeglądarka użytkownika trzyma plik u siebie. To osobna wartość niż czas cache w CDN.
-   **Query string i cookies** - w tej samej zakładce decydujesz, czy parametry w adresie (np. `?ver=6.5`) tworzą osobne wersje pliku w cache oraz czy CDN ma usuwać ciasteczka z odpowiedzi originu. Te dwie opcje najczęściej odpowiadają za niski współczynnik HIT.

Dla WordPressa bezpieczny punkt startowy to długi czas cache w CDN dla obrazów, CSS i JS oraz brak cache dla HTML, dopóki nie wiesz, jak strona zachowuje się dla zalogowanych użytkowników i koszyka WooCommerce. Szerszy kontekst warstw cache (strona, obiekt, CDN, przeglądarka) znajdziesz w artykule [WordPress - optymalizacja cache](/baza-wiedzy/wordpress-cache-optymalizacja/).

## Purge cache BunnyCDN - z panelu i przez API

Po podmianie pliku pod tym samym adresem (np. nowe logo jako `logo.png`) CDN dalej serwuje starą wersję, dopóki nie minie czas cache albo nie wyczyścisz go ręcznie. W panelu robisz to w Pull Zone → **Purge Cache**: całą strefę jednym kliknięciem albo wybrane adresy URL. Przy wdrożeniach automatycznych (CI/CD, skrypt deploy) wygodniej użyć API:

```
# Wyczyść całą Pull Zone (ID strefy widać w panelu i w URL panelu)
curl -X POST "https://api.bunny.net/pullzone/TWOJ_ZONE_ID/purgeCache" \
  -H "AccessKey: TWOJ_API_KEY"

# Wyczyść pojedynczy plik
curl -X POST "https://api.bunny.net/purge?url=https://cdn.example.com/images/logo.png" \
  -H "AccessKey: TWOJ_API_KEY"
```

Klucz API konta (AccessKey) daje pełny dostęp do wszystkich stref, więc trzymaj go w zmiennych środowiskowych lub sekretach CI, a nie w repozytorium.

## Jak sprawdzić, czy BunnyCDN działa (cdn-cache HIT / MISS)

Najszybszy test to podejrzenie nagłówków odpowiedzi. Wykonaj zapytanie dwa razy pod rząd:

```
# Pobierz same naglowki pliku z CDN
curl -I https://cdn.example.com/wp-content/uploads/logo.png

# Najwazniejsze naglowki w odpowiedzi:
# server: BunnyCDN-...      -> zapytanie obsluzyl serwer brzegowy BunnyCDN (kod PoP)
# cdn-cache: MISS           -> pierwszy raz: plik pobrany z originu
# cdn-cache: HIT            -> kolejny raz: plik z cache PoP
# cache-control: ...        -> czas cache dla przegladarki
```

Jeśli drugie i trzecie zapytanie nadal zwraca `MISS`, przyczyną jest zwykle nagłówek `Cache-Control: no-cache` lub `private` z originu, ciasteczko ustawiane w odpowiedzi albo zmieniający się parametr w adresie.

## Perma-Cache i Storage Zone

**Perma-Cache** to zaawansowana funkcja BunnyCDN - zapisuje cache na trwałe na dysku serwera brzegowego. Jeśli origin jest niedostępny, CDN serwuje stale dane. Wymaga powiązanej Storage Zone.

**Storage Zone** to wbudowany hosting plików BunnyCDN - alternatywa dla S3 z natywnym CDN delivery. Koszt: $0.02/GB/msc + CDN transfer. Możesz uploadować przez FTP, SFTP lub API REST.

```
# Upload pliku do Storage Zone przez API
curl -X PUT "https://storage.bunnycdn.com/TWOJA_ZONE/images/logo.png" \
  -H "AccessKey: TWOJ_STORAGE_KEY" \
  -H "Content-Type: image/png" \
  --data-binary @logo.png

# Plik dostepny przez CDN natychmiast:
# https://cdn.example.com/images/logo.png

# Listuj pliki
curl "https://storage.bunnycdn.com/TWOJA_ZONE/" \
  -H "AccessKey: TWOJ_STORAGE_KEY"
```

Kiedy co wybrać? Perma-Cache ma sens przy dużych bibliotekach mediów i originie, który bywa przeciążony lub niedostępny. Storage Zone wybierasz, gdy pliki w ogóle nie muszą leżeć na hostingu (np. pliki do pobrania, wideo, archiwa) i chcesz zwolnić miejsce oraz transfer na serwerze. Jeśli zależy ci głównie na ograniczeniu zapytań trafiających do originu z wielu PoP, zobacz też [Origin Shield w CDN](/baza-wiedzy/cdn-origin-shield-konfiguracja/).

## Bunny Optimizer - optymalizacja obrazów i plików w locie

Bunny Optimizer to dodatkowa, płatna usługa włączana per Pull Zone. Kompresuje i konwertuje obrazy (m.in. do WebP), pozwala zmieniać ich rozmiar parametrami w adresie URL i minifikuje CSS oraz JS.

Jeśli już generujesz WebP wtyczką WordPress lub w LiteSpeed Cache, nie włączaj obu mechanizmów naraz.

## BunnyCDN vs Cloudflare - porównanie szczegółowe

Cecha

BunnyCDN

Cloudflare Free

Cloudflare Pro

Cena transfer (EU)

$0.005-0.01/GB

Darmowy (bez limitu)

Darmowy (bez limitu)

Cena miesięczna

Pay per use (~$1-5 małe strony)

$0

$25/msc

Cache HTML stron

Tak (domyślnie off, włącz)

Nie (tylko statyczne)

Tak (Page Rules/Cache Rules)

WAF / DDoS

Podstawowy (Edge Rules)

Dobry (reguły OWASP)

Bardzo dobry (managed rules)

Liczba PoP (EU)

40+ PoP w Europie

300+ PoP globalnie

300+ PoP globalnie

Storage CDN

Tak (Storage Zone $0.02/GB/msc)

Nie

R2 (darmowy egress)

Optymalizacja obrazów

Tak (Optimizer - WebP, resize)

Nie (Polish: Pro+)

Tak (Polish + WebP)

Najlepszy dla

Media CDN, WordPress assets, Storage

DNS, ochrona, podstawowy cache

Pełne rozwiązanie CDN+WAF

## Bunny CDN czy Cloudflare - kiedy który, a kiedy oba

-   **Wybierz BunnyCDN**, gdy głównym celem jest szybkie dostarczanie mediów i plików statycznych, potrzebujesz przewidywalnego rozliczenia za transfer, przechowywania plików (Storage Zone) albo nie chcesz przenosić DNS domeny do zewnętrznego dostawcy.
-   **Wybierz Cloudflare**, gdy liczy się ochrona: WAF, łagodzenie ataków DDoS, zarządzanie botami i darmowy plan na start. Cloudflare działa jako reverse proxy dla całej domeny, więc wymaga zmiany serwerów DNS. Więcej w artykule [CDN w hostingu - Cloudflare](/baza-wiedzy/cdn-w-hostingu-cloudflare/).
-   **Połącz oba**, gdy chcesz ochrony Cloudflare dla domeny głównej i BunnyCDN dla mediów na subdomenie. Wtedy rekord CNAME `cdn.twojadomena.pl` w Cloudflare ustaw jako _DNS only_ (szara chmurka).

## Typowe problemy z BunnyCDN i jak je naprawić

### Mixed content po włączeniu CDN

Przeglądarka blokuje zasoby ładowane przez `http://` na stronie HTTPS. Upewnij się, że w pluginie lub wtyczce cache adres CDN zaczyna się od `https://`, certyfikat dla własnej subdomeny jest aktywny, a w Pull Zone włączone jest wymuszanie SSL. Zasady poprawnej konfiguracji certyfikatów opisujemy w poradniku [jak skonfigurować SSL na hostingu](/baza-wiedzy/jak-skonfigurowac-ssl-na-hostingu/).

### Fonty i ikony nie ładują się (błąd CORS)

Pliki fontów (`.woff2`, `.woff`, `.ttf`) pobierane z innej domeny wymagają nagłówka `Access-Control-Allow-Origin`. W ustawieniach Pull Zone (sekcja nagłówków) włącz dodawanie nagłówków CORS dla rozszerzeń fontów albo dodaj ten nagłówek regułą Edge Rules. Po zmianie zrób purge, bo w cache mogą leżeć odpowiedzi bez nagłówka.

### Podwójny cache: wtyczka WordPress i CDN

Po aktualizacji motywu CDN może nadal serwować stary CSS. Ustaw czyszczenie cache CDN razem z cache wtyczki (plugin Bunny.net lub integracja w wtyczce cache) albo korzystaj z plików z wersją w adresie, które zmieniają URL przy każdej aktualizacji.

### Cookies i query string omijają cache

Parametry typu `?utm_source=` czy `?fbclid=` potrafią tworzyć tysiące unikalnych adresów, z których każdy jest najpierw MISS. Podobnie odpowiedzi ustawiające ciasteczka mogą nie trafiać do cache. Dla plików statycznych wyłącz uwzględnianie query string w kluczu cache (jeśli nie używasz parametrów do wersjonowania) i usuwaj ciasteczka z odpowiedzi. Dla HTML zachowaj ostrożność: tam ciasteczka często oznaczają sesję lub koszyk, których nie wolno cachować wspólnie dla wszystkich.

## Najczęstsze pytania

Czym jest BunnyCDN i jak działa Pull Zone? +

BunnyCDN to Content Delivery Network z ponad 120 PoP (Points of Presence) na całym świecie. Pull Zone to konfiguracja w BunnyCDN wskazująca na twój serwer źródłowy (origin) - gdy użytkownik prosi o zasób przez BunnyCDN, serwer edge sprawdza cache. Jeśli brak (miss), pobiera z originu, cachuje i zwraca użytkownikowi. Przy kolejnych zapytaniach (hit) serwuje z cache lokalnego PoP - drastycznie niższe opóźnienia i odciążenie originu.

BunnyCDN vs Cloudflare - co wybrać dla WordPress? +

Cloudflare Free jest darmowy i świetny do ochrony DNS, WAF, podstawowego cache. Ale Cloudflare Free cachuje tylko statyczne pliki i nie cachuje stron WordPress (bez Page Rules lub Workers). BunnyCDN kosztuje od $0.005/GB (Europa) ale cachuje wszystko - strony HTML, zdjęcia, CSS, JS - i oferuje Perma-Cache (zapis na dysku edge nawet gdy origin padnie). Dla WordPress z dużym ruchem statycznych zasobów (CDN dla /wp-content/uploads/) BunnyCDN jest tańszy i prostszy do konfiguracji. Cloudflare wygrywa w bezpieczeństwie (DDoS, WAF, Bot Management).

Jak BunnyCDN radzi sobie z ceną w porównaniu z Cloudflare i Fastly? +

BunnyCDN jest jednym z najtańszych CDN: Europa $0.005-0.01/GB, USA $0.01/GB, Azja $0.03/GB. Cloudflare Free jest darmowy dla podstawowego użycia, ale Pro ($25/msc) jest droższy przy dużym transfer. Fastly i AWS CloudFront są 3-5x droższe niż BunnyCDN. KeyCDN jest podobny cenowo do BunnyCDN. BunnyCDN ma też zryczałtowane Storage Zone ($0.02/GB/msc) - tania alternatywa S3 do przechowywania plików z CDN delivery. Dla małych i średnich projektów BunnyCDN oferuje najlepszy stosunek ceny do jakości.

Jak skonfigurować BunnyCDN dla WordPress? +

Najprościej przez oficjalny plugin Bunny.net (dawniej CDN Enabler). Instalujesz plugin, wpisujesz URL Pull Zone z BunnyCDN, plugin automatycznie przepisuje URL statycznych zasobów (/wp-content/uploads/, /wp-content/themes/, /wp-content/plugins/) na adresy CDN. Alternatywnie: CDN Enabler lub WP Rocket CDN integration. Pamiętaj żeby SSL Pull Zone był włączony i certyfikat był ważny - mix HTTP/HTTPS powoduje błędy mixed content.

Co to jest domena b-cdn.net? +

b-cdn.net to domena techniczna BunnyCDN. Każda Pull Zone dostaje adres w formacie nazwa-strefy.b-cdn.net, pod którym od razu działa CDN z certyfikatem SSL. Jeśli w kodzie strony lub w narzędziach deweloperskich widzisz zasoby ładowane z \*.b-cdn.net, oznacza to, że strona korzysta z BunnyCDN. Zamiast tego adresu możesz podpiąć własną subdomenę (np. cdn.twojadomena.pl) przez rekord CNAME.

Jak wyczyścić cache w BunnyCDN? +

Z panelu: Pull Zone → Purge Cache, gdzie możesz wyczyścić całą strefę albo pojedyncze adresy URL. Automatycznie: przez API, wysyłając POST na https://api.bunny.net/pullzone/ID\_STREFY/purgeCache z nagłówkiem AccessKey (klucz API konta). Oficjalna wtyczka Bunny.net dla WordPress również potrafi czyścić cache z poziomu panelu WP.

Jak sprawdzić, czy plik jest serwowany z cache BunnyCDN? +

Wykonaj curl -I na adres pliku w CDN i znajdź nagłówek cdn-cache. Wartość HIT oznacza, że plik przyszedł z cache serwera brzegowego, MISS że edge musiał pobrać go z originu. Nagłówek server wskazuje dodatkowo, który PoP BunnyCDN obsłużył zapytanie.

## Sprawdź oferty pasujące do tego scenariusza

Poniżej masz szybkie przejścia do ofert i stron z kodami rabatowymi tam, gdzie są dostępne.

Contabo

VPS jako origin server dla BunnyCDN - CDN odciąża serwer od statycznych zasobów

VPS Origin

[Aktywuj rabat →](/out/contabo/#reklama "Contabo")

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/contabo/)

Mikr.us

Tani VPS z BunnyCDN - świetny duet dla małych projektów

VPS + CDN

[Aktywuj rabat →](/out/mikrus/#reklama "Mikr.us")

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/mikrus/)

LH.pl

Hosting WordPress z BunnyCDN - szybciej bez kosztownego VPS

Hosting WP

[Aktywuj rabat →](/out/lh-pl/#reklama "LH.pl")

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/lh-pl/)

## Powiązane strony

-   [Cloudflare - konfiguracja z hostingiem](/baza-wiedzy/cloudflare-konfiguracja-z-hostingiem/)
-   [WooCommerce - optymalizacja hostingu](/baza-wiedzy/woocommerce-optymalizacja-hosting/)
-   [Nginx - konfiguracja vhostów i cache](/baza-wiedzy/nginx-vhost-konfiguracja/)
-   [SSL Let's Encrypt - automatyzacja](/baza-wiedzy/ssl-lets-encrypt-automatyzacja/)
-   [Wszystkie artykuły](/baza-wiedzy/)
-   [Nginx FastCGI Cache - konfiguracja, bypass i integracja z WordPress
    
    Nginx FastCGI Cache: fastcgi\_cache\_path, fastcgi\_cache\_key, bypass dla zalogowanych użytkowników i WooCommerce, Nginx…
    
    ](/baza-wiedzy/nginx-fastcgi-cache/)
-   [Varnish Cache - konfiguracja i integracja z WordPress
    
    Jak zainstalować i skonfigurować Varnish Cache na VPS. VCL basics, integracja z WordPress, purging cache, ESI,…
    
    ](/baza-wiedzy/varnish-cache-konfiguracja/)
-   [Jak wybrać hosting?](/jaki-hosting-wybrac/)

Autor: [Redakcja HostGrade.pl](/autorzy/) Zespół redakcyjny · Aktualizacja: 7 października 2026

Artykuły HostGrade.pl przygotowuje i aktualizuje redakcja serwisu. Ceny startowe, ceny odnowienia i warunki planów sprawdzamy w cennikach i regulaminach dostawców, a potem liczymy całkowity koszt za 2 lata (cena startowa plus odnowienia). Zasady zbierania danych i liczenia kosztów opisujemy na stronie Metodologia. Linki partnerskie oznaczamy jako #reklama.

[O redakcji i metodologii →](/autorzy/)