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-lagerAnvänd det när
memoryYou need the fastest cache and can keep objects in RAM.
diskYou need cache capacity that survives process restarts.
tieredDu vill ha minne för heta objekt och disk för större kapacitet.
storage-binDu förväntar hög omsättning och vill ha begränsad diskallokering.
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

KontrollSyfte
lockCollapse concurrent misses so one request fills the cache.
range.sliceCache fixed byte slices for large files and resumable downloads.
peer_fillLåt en edge fylla från en annan edge innan origin används.
origin_protectionBegränsa samtidiga origin-fyllningar under hög belastning.
cache_purgerRensa inaktuella diskposter i begränsade batcher.

Use cache carefully

  • Förfrågningar som bär Authorization eller Proxy-Authorization kringgår alltid delad cachesökning och lagring.
  • Felaktiga eller motstridiga svar Cache-Control-direktiv avvisas istället för att falla tillbaka till konfigurerade TTL:er; s-maxage har prioritet framför max-age.
  • must-revalidate, proxy-revalidate och s-maxage förbjuder gammal återanvändning efter att färskheten upphört.
  • Keep cache keys bounded and predictable.
  • Använd en storage-bin-rot per Fluxheim-process som körs; ägarskapet använder ett rådgivande filsystemslås, och delade rötter med flera skrivare är osäkra utan verifierad extern låsning.
  • Använd purge eller korta TTL:er när innehåll ändras ofta.
  • Bypass on cookies, preview headers, and unsafe query strings.

Uppgraderingsnotering om krypterad cache

Fluxheim 1.7.12 använder data- och indexnycklar som är bundna till varje cacherot samt ett beständigt nonce-tillstånd för krypterade diskcacheobjekt. Vid första starten med en äldre krypterad rot och efter varje lokal nyckelrotation töms cachen avsiktligt innan trafik tas emot.

  • Krypterade cachedata är utbytbara och får inte behandlas som en auktoritativ datakälla.
  • Ge varje cacherot beständig privat lagring och kopiera inte nonce-tillstånd mellan oberoende rötter.
  • Kontrollera att ursprungsservern klarar den första cacheuppvärmningen efter en uppgradering eller nyckelrotation.
Svenska