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-SeitnNutz es, wenn
memoryYou need the fastest cache and can keep objects in RAM.
diskYou need cache capacity that survives process restarts.
tieredDu Speicher für heiße Objekte und Disk für größere Kapazität wuisd.
storage-binDu vui Änderung erwartst und begrenzte Disk-Allokation wuisd.
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

SteuerungZweck
lockCollapse concurrent misses so one request fills the cache.
range.sliceCache fixed byte slices for large files and resumable downloads.
peer_fillLoss a Edge vo ana andern Edge fülln, bevor da Origin hergnomma wird.
origin_protectionBegrenz gleichzeitige Origin-Fills bei hohem Druck.
cache_purgerEntfern stale Disk-Einträge in begrenzten Batches.

Use cache carefully

  • Anfragen mit Authorization oder Proxy-Authorization umgehn d Suche und Speicherung im gemeinsamen Cache oiwei.
  • Fehlerhafte oder widersprüchliche Cache-Control-Antwortanweisungen werdn abglehnt, statt auf konfigurierte TTLs zurückzufallen; s-maxage geht vor max-age.
  • must-revalidate, proxy-revalidate und s-maxage verbietn d Wiederverwendung vo veraltete Daten, sobald d Frische abgloffa is.
  • Keep cache keys bounded and predictable.
  • Pro laufendem Fluxheim-Prozess genau a storage-bin-Root verwenden; die Eigentümerschaft nutzt a beratende Dateisystemsperre, und gemeinsam genutzte Multi-Writer-Roots san ohne geprüfte externe Sperrung unsicher.
  • Nutz Purge oder kurze TTLs, wenn sich Inhalte oft ändern.
  • Bypass on cookies, preview headers, and unsafe query strings.

Hinweis zum Upgrade vom verschlüsselten Cache

Fluxheim 1.7.12 stellt verschlüsselte Disk-Cache-Objekte auf wurzelgebundene Daten- und Indexschlüssel mit dauerhaftem Nonce-Stand um. Beim ersten Start mit oana älteren verschlüsselten Wurzel und bei jeder lokalen Schlüsselrotation wird der Cache absichtlich kalt geleert, bevor Verkehr bedient wird.

  • Behandel den verschlüsselten Cache als wegwerfbare Beschleunigung, ned als maßgebliche Datenquelle.
  • Gib jeder Cache-Wurzel an dauerhaften privaten Speicher und kopier den Nonce-Stand ned zwischen unabhängige Wurzeln.
  • Plan d Ursprungskapazität fia des erste Aufwärmen nachm Upgrade oder Schlüsselwechsel.
Boarisch