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-tjenesteBrug det når
memoryYou need the fastest cache and can keep objects in RAM.
diskYou need cache capacity that survives process restarts.
tieredDu vil have memory til hot objects og disk til større kapacitet.
storage-binDu forventer høj churn og vil have bounded disk allocation.
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

StyringFormål
lockCollapse concurrent misses so one request fills the cache.
range.sliceCache fixed byte slices for large files and resumable downloads.
peer_fillLad én edge fylde fra en anden edge, før origin bruges.
origin_protectionBegræns samtidige origin fills under højt pres.
cache_purgerRyd stale disk entries i bounded batches.

Use cache carefully

  • Anmodninger, der bærer Authorization eller Proxy-Authorization, omgår altid delt cacheopslag og -lagring.
  • Forkert eller modstridende svar Cache-Control-direktiver afvises i stedet for at falde tilbage til konfigurerede TTL'er; s-maxage har prioritet over max-age.
  • must-revalidate, proxy-revalidate og s-maxage forbyder gammel genbrug, efter at friskheden udløber.
  • Keep cache keys bounded and predictable.
  • Brug én storage-bin-rod pr. kørende Fluxheim-proces; ejerskabet bruger en rådgivende filsystemlås, og delte rødder med flere skrivere er usikre uden verificeret ekstern låsning.
  • Brug purge eller korte TTL'er, når indhold ændres ofte.
  • Bypass on cookies, preview headers, and unsafe query strings.

Notat om opgradering af krypteret cache

Fluxheim 1.7.12 flytter krypterede diskcacheobjekter til rodbundne data og indeksnøgler med holdbar nonce-tilstand. Den første opstart mod en ældre krypteret rod, og hver lokal-nøgle-rotation, koldt-renser med vilje denne cache, før den betjener trafik.

  • Behandl den krypterede cache som engangsacceleration, ikke kilden til registrering.
  • Giv hver cache-rod vedvarende privat lagring og kopier ikke nonce-tilstand mellem uafhængige rødder.
  • Planlæg startkapacitet for den første opvarmning efter opgradering eller drejning af tasterne.
Dansk