Cache-Control für Bunny CDN konfigurieren

Sicherheitsrelevante Cache-Direktiven per Edge Rule — no-store für sensible Seiten, immutable für versionierte Assets, Perma-Cache-Interaktion.

Bunny CDN · Schritt für Schritt

Cache-Control auf Bunny CDN

Cache-Control steuert, wie Browser und CDN-Knoten Responses cachen. Aus Sicherheitssicht ist das Verhindern von Caching für sensible Seiten (Login, Dashboard, API-Responses mit personenbezogenen Daten) kritisch. Mit 8 von 166 Punkten ist Cache-Control ein Faktor im Wolf-Agents Web Security Check.

Bunny CDN bietet ein mehrstufiges Cache-System: Edge Cache auf den PoPs, Perma-Cache für dauerhafte Speicherung und Bunny Shield als Origin-Shield-Schicht. Sicherheitsrelevante Cache-Direktiven müssen alle Schichten berücksichtigen. Wolf-Agents empfiehlt eine klare Trennung: no-store für sensible Pfade, immutable für versionierte Assets und sinnvolle TTLs für HTML-Seiten.

1 Schritt 1 von 3

Cache-Control per Edge Rule und Pull Zone Settings

Konfigurieren Sie zwei Edge Rules: Eine für sensible Pfade mit no-store und eine für versionierte Assets mit langer Cache-Dauer. Passen Sie zusätzlich die Pull Zone Cache-Einstellungen an. Edge Rules überschreiben die Pull Zone Settings für die betroffenen Pfade.

Bunny Dashboard → Edge Rules Dashboard
# Bunny Dashboard → Pull Zone → Edge Rules

# --- Edge Rule 1: no-store für Login/Dashboard ---
Condition:    URL Match: /login*, /dashboard*, /api/*
Action:       Set Response Header
Header Name:  Cache-Control
Header Value: no-store, no-cache, must-revalidate, private

# --- Edge Rule 2: Immutable für versionierte Assets ---
Condition:    URL Match: /assets/*.js, /assets/*.css
Action:       Set Response Header
Header Name:  Cache-Control
Header Value: public, max-age=31536000, immutable

# --- Pull Zone Settings ---
# Browser Cache TTL: 1 Jahr (für Assets)
# CDN Cache TTL: Override Origin → 30 Tage
# Perma-Cache: AN (für statische Assets)
Perma-Cache-Interaktion beachten

Perma-Cache ignoriert Cache-Control-Direktiven und speichert Dateien permanent. Wenn Sie no-store für bestimmte Pfade setzen, stellen Sie sicher, dass Perma-Cache für diese Pfade deaktiviert ist oder die Pfade per Perma-Cache Exclusion ausgeschlossen werden.

2 Schritt 2 von 3

Cache-Control per Bunny API automatisieren

Für reproduzierbare Deployments erstellen Sie Edge Rules und konfigurieren Pull Zone Settings per API. Trennen Sie klar zwischen sensiblen Pfaden (no-store) und statischen Assets (langlebiger Cache). Die Pull Zone Settings definieren das Standardverhalten, Edge Rules überschreiben es gezielt.

Bunny API (cURL) API
# Bunny API — no-store für sensible Pfade
curl -X POST https://api.bunny.net/pullzone/{pullZoneId}/edgerules \
  -H "AccessKey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "ActionType": 15,
  "ActionParameter1": "Cache-Control",
  "ActionParameter2": "no-store, no-cache, must-revalidate, private",
  "Triggers": [{
    "Type": 0,
    "PatternMatchingType": 0,
    "PatternMatches": ["/login*", "/dashboard*", "/api/*"]
  }],
  "TriggerMatchingType": 0,
  "Description": "No-cache for sensitive pages",
  "Enabled": true
}'

# Pull Zone Cache-Einstellungen
curl -X POST https://api.bunny.net/pullzone/{pullZoneId} \
  -H "AccessKey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "CacheExpirationTime": 2592000,
  "BrowserCacheTtl": 31536000,
  "EnableCacheSlice": false,
  "EnableSmartCache": false
}'
private und no-store verhindern CDN-Caching. Bunny CDN leitet diese Direktiven korrekt weiter und cached solche Responses nicht. Prüfen Sie den CDN-CacheStatus Header — er sollte MISS oder BYPASS zeigen.
3 Schritt 3 von 3

Cache-Verhalten verifizieren

Prüfen Sie Cache-Control Header und CDN-Cache-Status für verschiedene Pfade. Sensible Seiten müssen no-store zeigen, versionierte Assets immutable. Der CDN-CacheStatus Header zeigt, ob Bunny die Response cached hat.

Terminal Verifizieren
# Cache-Control für sensible Seite prüfen
curl -sI https://ihre-domain.b-cdn.net/login | grep -i cache-control

# Erwartete Ausgabe:
cache-control: no-store, no-cache, must-revalidate, private

# Cache-Control für Assets prüfen
curl -sI https://ihre-domain.b-cdn.net/assets/app.a1b2c3.js | grep -i cache-control

# Erwartete Ausgabe:
cache-control: public, max-age=31536000, immutable

# CDN Cache Status prüfen
curl -sI https://ihre-domain.b-cdn.net/ | grep -i cdn-cache
CDN-CacheStatus: HIT

Häufige Fehler

Perma-Cache cached no-store-Responses

Perma-Cache ist unabhängig von Cache-Control-Direktiven. Wenn Perma-Cache für die gesamte Zone aktiv ist, werden auch Pfade gecached, die no-store im Header haben. Schließen Sie sensible Pfade per Perma-Cache Exclusion aus.

Origin überschreibt Edge Rule Cache-Control

Wenn "Override Origin Cache-Control" in den Pull Zone Settings deaktiviert ist, leitet Bunny den Origin-Header durch. Die Edge Rule überschreibt beides. Stellen Sie sicher, dass die Edge Rule aktiv ist und die richtige Priorität hat.

Sensible Daten im CDN-Cache

Personalisierte Responses (Dashboard, Profil, API-Daten) dürfen nicht im CDN gecached werden. Ohne no-store kann ein CDN-Cache personenbezogene Daten an andere Nutzer ausliefern. Verwenden Sie URL-Pattern-Trigger für alle sensiblen Pfade.

Compliance-Relevanz

Korrektes Cache-Verhalten ist direkt relevant für den Datenschutz. Die DSGVO fordert technische Maßnahmen zum Schutz personenbezogener Daten — gecachte persönliche Daten im CDN sind ein Verstoß. PCI DSS verbietet das Caching von Kreditkartendaten und Session-Tokens. NIS2 fordert Maßnahmen zur Datenminimierung. Bunny CDN mit EU-only Storage Zones begrenzt die Datenverarbeitung auf europäische Server. Der Wolf-Agents Web Security Check prüft Cache-Control-Direktiven für HTML-Seiten und sensible API-Pfade und vergibt bis zu 8 Punkte.

Wie steht Ihre Domain bei Cache-Control?

Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.