Ga naar inhoud

CDN, cache en logs

CDN-configuratie, cachelagen, edge rules en toegangslogs per site. Alle endpoints zijn genest onder een site en draaien op Bunny.

OAuth-scopes: lezen vereist sites:read, schrijven vereist sites:write. Bovenop de scope vereist elke write op deze pagina de can_modify (bewerk)-rol op de site, en deletes vereisen doorgaans can_destroyeen cachelaag leegmaken is de uitzondering: die is afgeschermd met can_modify, ondanks dat het een DELETE is. Zonder de vereiste rol wordt het verzoek afgewezen met 403. Endpoints die met Bunny communiceren retourneren 409 cdn_not_active wanneer de site geen pull zone heeft, en 502 bij een upstream Bunny-fout.

Net als alle endpoints per site erven deze ook de beveiligingen op siteniveau — een site die vanwege dunning is geblokkeerd retourneert 402 service_suspended en een site die in verwijdering staat retourneert 403 pending_delete. Zie Sites.


CDN-status

GET /api/sites/:site_id/cdn

Status en configuratie van de Bunny pull zone. Retourneert 409 cdn_not_active als er geen pull zone is.

Geretourneerde params
  • active: Boolean
  • cdn_type: String | "premium" of "volume"
  • optimizer_enabled: Boolean
  • origin_url: String
  • origin_type: Integer
  • enable_logging: Boolean
  • origin_shield_enabled: Boolean
  • auto_ssl: Boolean
  • cache_control_max_age_override: Integer
  • smart_cache: Boolean
  • cache_enabled: Boolean
  • hostnames: Array<Object>
    • value: String
    • force_ssl: Boolean
    • has_certificate: Boolean
    • is_system_hostname: Boolean

Caching-instellingen

De caching-configuratie van de pull zone (smart cache, verlooptijden, vary-toggles, stale-while-). Onderscheiden van het beheer van de Cache-laag hieronder (dat redis/nginx/bunny in- of uitschakelt). Vereist CDN actief* (409 cdn_not_active). Synchroon; upstream-fouten retourneren 502.

Caching-instellingen ophalen

GET /api/sites/:site_id/cdn/caching

Scope sites:read.

Geretourneerde params
  • smart_cache: Boolean
  • cache_expiration: Integer | edge-cache-TTL in seconden; -1 = volg origin, 0 = niets cachen
  • browser_cache_expiration: Integer | browser-cache-TTL in seconden
  • query_string_ordering: Boolean
  • cache_error_responses: Boolean
  • vary_avif / vary_webp / vary_mobile / vary_hostname: Boolean
  • vary_country_code / vary_country_state_code / vary_cookie: Boolean
  • cookie_vary_parameters: Array<String>
  • query_string_vary_parameters: Array<String>
  • disable_cookies: Boolean
  • cache_slice: Boolean
  • stale_while_offline / stale_while_updating: Boolean

Caching-instellingen bijwerken

PATCH /api/sites/:site_id/cdn/caching

Scope sites:write (en de can_modify-rol). Partial update — alleen de keys die je verstuurt worden geschreven. Retourneert de ververste instellingen (zelfde vorm als de GET hierboven).

Params
  • Elk van de hierboven geretourneerde velden. Scalars en booleans worden as-is verstuurd; cookie_vary_parameters en query_string_vary_parameters zijn Array<String>.

De cache leegmaken

POST /api/sites/:site_id/cdn/caching/purge

Scope sites:write (en de can_modify-rol). Maakt de volledige pull-zone-cache leeg. Synchroon.

Een site kan ook zelf om een purge vragen

De hostingcontainer van een site kan van binnenuit een purge starten — denk aan een WordPress-cacheplugin die na een publicatie leegmaakt — via de inkomende CDN-cache-webhook. Die route is infrastructuur-only (systeem-API-sleutel, geen OAuth) en asynchroon; de purge verschijnt in de taakgeschiedenis van de site als site.cache.cdn_purge, toegeschreven aan System. Gebruik als integrator de endpoints op deze pagina.


Cache

Het :type-segment is de cachelaag: redis, nginx, bunny, of all (verdeelt over elke laag). Een onbekend type retourneert 422 {"error":"unknown_cache_type","allowed":[...]}. Een laag die niet in het plan van de site zit (sommige plannen hebben bijvoorbeeld geen Redis) retourneert 422 {"error":"cache_type_unavailable","cache_type":"redis"}.

Cachestatus

GET /api/sites/:site_id/cache

Geretourneerde params
  • bunny: Boolean | Bunny CDN-cache ingeschakeld
  • nginx: Boolean
  • redis: Boolean

Een cachelaag inschakelen

PATCH /api/sites/:site_id/cache/:type

Async — retourneert 202 met de te pollen taak. Vereist de can_modify (bewerk)-rol.

Geretourneerde params
  • task_id: Integer
  • status: String | "PENDING"
  • cache_type: String

Een cachelaag uitschakelen

DELETE /api/sites/:site_id/cache/:type

Async — retourneert 202 (zelfde vorm als inschakelen). Vereist de can_destroy-rol.

Een cachelaag leegmaken

DELETE /api/sites/:site_id/cache/:type/purge

Async — retourneert 202 (zelfde vorm als inschakelen). Vereist de can_modify (bewerk)-rol.


Edge rules

Bunny edge rules voor de site. Vereist CDN actief (409 cdn_not_active). Alle acties zijn synchroon en geven Bunny's response door. :id is de Guid van de rule.

Edge rules weergeven

GET /api/sites/:site_id/edge_rules

Een edge rule aanmaken

POST /api/sites/:site_id/edge_rules

Retourneert 201. Vereist de can_modify (bewerk)-rol. Laat Guid weg om aan te maken; een opnieuw uitgevoerde create is niet idempotent (Bunny maakt een duplicaat) — stuur een Guid (of gebruik PATCH) om ter plekke bij te werken.

Params (verpakt in edge_rule)
  • Guid: String | weglaten om aan te maken
  • ActionType: Integer | 0–34 (bijv. 0 = ForceSSL, 1 = Redirect, 2 = OriginUrl, 4 = BlockRequest, 5 = SetResponseHeader, 23 = DisableWAF, 28 = DisableShield)
  • ActionParameter1 / ActionParameter2 / ActionParameter3: String
  • TriggerMatchingType: Integer | hoe de triggers van de rule combineren: 0 = match any, 1 = match all, 2 = match none
  • Description: String
  • Enabled: Boolean
  • OrderIndex: Integer
  • Triggers: Array<Object> | maximaal 5 condities per rule (Bunny's maximum per rule)
    • Type: Integer | 0 = Url, 1 = RequestHeader, 2 = ResponseHeader, 3 = UrlExtension, 4 = CountryCode, 5 = RemoteIP, 6 = UrlQueryString, 7 = RandomChance, 8 = StatusCode, 9 = RequestMethod, 10 = CookieValue, 11 = CountryStateCode, 12 = OriginRetryAttemptCount, 13 = OriginConnectionError
    • PatternMatchingType: Integer | hoe de waarden van deze conditie combineren: 0 = match any, 1 = match all, 2 = match none
    • Parameter1: String
    • PatternMatches: Array<String> | maximaal 5 waarden per conditie (Bunny's maximum per conditie)
  • ExtraActions: Array<Object>
    • ActionType: Integer
    • ActionParameter1 / ActionParameter2 / ActionParameter3: String

Twee verschillende limieten van 5

Bunny maximeert een rule op 5 Triggers (condities) en elke conditie op 5 PatternMatches (waarden). Het aantal condities per rule wordt als eerste gevalideerd. Bunny's eigen foutmelding draait het vocabulaire om — de afwijzing voor te veel waarden luidt "Maximum 5 triggers are allowed per condition" — dus lees de melding tegen de rule die je hebt verstuurd, niet letterlijk.

Systeembeheerde rules (Description met prefix CPRESS -) worden uit de lijst gefilterd en zijn niet door de klant te bewerken.

ActionType wordt rechtstreeks aan Bunny doorgegeven, dus de API accepteert het volledige bereik 0–34. Een handvol van die action types stuurt Bunny-producten aan die CloudPress niet doorverkoopt (perma-cache-bypass, Bunny Storage- / Magic Containers-origins, edge scripting, request coalescing) en die niet worden aangeboden in de edge-rule-editor van het dashboard; een bestaande rule die er al een gebruikt, blijft daar bewerkbaar. Blijf bij de action types die je in het dashboard kunt selecteren, tenzij je hebt bevestigd dat de onderliggende Bunny-dienst voor je zone beschikbaar is.

Een edge rule bijwerken

PATCH /api/sites/:site_id/edge_rules/:id

De Guid wordt uit de URL gehaald. Retourneert 200. Vereist de can_modify (bewerk)-rol. Volledige vervanging — velden die je weglaat worden gewist, dus stuur de complete rule.

Een edge rule in-/uitschakelen

PATCH /api/sites/:site_id/edge_rules/:id/enabled

Vereist de can_modify (bewerk)-rol.

Params
  • enabled: Boolean

Een edge rule verwijderen

DELETE /api/sites/:site_id/edge_rules/:id

Retourneert 204. Vereist de can_destroy-rol.


Logs

Vereisen CDN actief (409 cdn_not_active).

CDN-toegangslogs

GET /api/sites/:site_id/logs/cdn

Params (allemaal optioneel)
  • from: String | ISO8601-datetime (standaard: 24 uur geleden)
  • to: String | ISO8601-datetime (standaard: nu)
  • period: String | vooraf ingesteld venster — 1h, 6h, 24h, 72h. Alleen gebruikt wanneer zowel from als to leeg zijn. Onbekende waarden → 422.
  • status: String | filter op HTTP-statuscode
  • cache_status: String | filter op cachestatus
  • country: String | filter op tweeletterige landcode
  • url_contains: String | filter op URL-substring
  • limit: Integer | max resultaten (standaard: 100, max: 1000)
  • offset: Integer | paginatie-offset (standaard: 0)
  • order: String | asc of desc (standaard: desc)
Fouten
  • 422 | invalid_period, invalid_range, of range_exceeds_3_days
  • 502 | upstream-fout

CDN-logsamenvatting

GET /api/sites/:site_id/logs/cdn/summary

Geaggregeerde statistieken over dezelfde filters als het endpoint voor CDN-toegangslogs.

Origin-logs

GET /api/sites/:site_id/logs/origin

Params
  • date: String | datum geaccepteerd door Bunny (optioneel)