Cache

Use cache when Fluxheim sits in front of an origin and repeated responses should be served faster.

Proxy cache example

[cache]
enabled = true
default_ttl_secs = 300
max_object_bytes = "32MiB"
status_header = "X-Cache-Status"

[cache.memory]
enabled = true
max_size_bytes = "256MiB"

[cache.disk]
enabled = true
path = "/var/cache/fluxheim/site"
max_size_bytes = "10GiB"

Cache backends

Backend-serviceGebruik het wanneer
memoryYou need the fastest cache and can keep objects in RAM.
diskYou need cache capacity that survives process restarts.
tieredJe geheugen wilt voor hot objects en disk voor grotere capaciteit.
storage-binJe veel churn verwacht en begrensde diskallocatie wilt.
encrypted diskYou need cache-at-rest protection for disk objects.

Route cache policy

[[vhosts.routes]]
name = "assets"
path_prefix = "/assets/"
action = "proxy"

[vhosts.routes.proxy]
upstreams = ["127.0.0.1:3000"]

[vhosts.routes.cache]
enabled = true
status_ttls = { "200" = 3600, "404" = 60 }
content_types = ["text/css", "application/javascript", "image/*"]
extensions = ["css", "js", "png", "webp", "svg"]
include_query = false
stale_while_revalidate_secs = 30
stale_if_error_secs = 120

Advanced cache controls

ControleDoel
lockCollapse concurrent misses so one request fills the cache.
range.sliceCache fixed byte slices for large files and resumable downloads.
peer_fillLaat één edge vullen vanaf een andere edge voordat origin wordt gebruikt.
origin_protectionBeperk gelijktijdige origin-fills onder hoge druk.
cache_purgerRuim stale disk entries op in begrensde batches.

Use cache carefully

  • Verzoeken met Authorization of Proxy-Authorization omzeilen altijd het opzoeken en opslaan in de gedeelde cache.
  • Verkeerd opgemaakte of conflicterende reactie Cache-Control-richtlijnen worden afgewezen in plaats van terug te vallen op geconfigureerde TTL's; s-maxage heeft voorrang op max-age.
  • must-revalidate, proxy-revalidate en s-maxage verbieden oud hergebruik nadat de versheid is verlopen.
  • Keep cache keys bounded and predictable.
  • Gebruik één storage-bin-hoofdmap per actief Fluxheim-proces; het eigenaarschap gebruikt een adviserende bestandssysteemvergrendeling en gedeelde hoofdmappen met meerdere schrijvers zijn onveilig zonder geverifieerde externe vergrendeling.
  • Gebruik purge of korte TTL's wanneer content vaak verandert.
  • Bypass on cookies, preview headers, and unsafe query strings.

Opmerking over het upgraden van gecodeerde cache

Fluxheim 1.7.12 verplaatst gecodeerde schijfcacheobjecten naar root-gebonden gegevens en indexsleutels met een duurzame nonce-status. De eerste keer dat een oudere gecodeerde root wordt opgestart en elke lokale sleutelrotatie, wordt de cache opzettelijk koud gewist voordat er verkeer wordt aangeboden.

  • Behandel de gecodeerde cache als wegwerpbare versnelling, niet als de bron van het record.
  • Geef elke cacheroot permanente privéopslag en kopieer de nonce-status niet tussen onafhankelijke rooten.
  • Plan de oorsprongscapaciteit voor de eerste opwarming na het upgraden of draaien van toetsen.
Nederlands