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

Partea backendFolosește când
memoryYou need the fastest cache and can keep objects in RAM.
diskYou need cache capacity that survives process restarts.
tieredVrei memory pentru obiecte hot și disk pentru capacitate mai mare.
storage-binTe aștepți la high churn și vrei alocare bounded pe disk.
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

Control operaționalScop
lockCollapse concurrent misses so one request fills the cache.
range.sliceCache fixed byte slices for large files and resumable downloads.
peer_fillPermite unui edge să facă fill din alt edge înainte să folosească origin.
origin_protectionLimitează origin fill-urile concurente când presiunea este mare.
cache_purgerCurăță stale disk entries în batch-uri bounded.

Use cache carefully

  • Solicitările care transportă Authorization sau Proxy-Authorization ocolesc întotdeauna căutarea și stocarea în cache partajată.
  • Directivele Cache-Control de răspuns incorecte sau conflictuale sunt respinse în loc să se întoarcă la TTL-urile configurate; s-maxage are prioritate față de max-age.
  • must-revalidate, proxy-revalidate și s-maxage interzic reutilizarea învechită după expirarea prospețimii.
  • Keep cache keys bounded and predictable.
  • Folosiți un singur storage-bin root pentru fiecare proces Fluxheim care rulează; proprietatea folosește o blocare consultativă a sistemului de fișiere, iar rădăcinile partajate cu mai mulți writers nu sunt sigure fără blocare externă verificată.
  • Folosește purge sau TTL-uri scurte când conținutul se schimbă des.
  • Bypass on cookies, preview headers, and unsafe query strings.

Notă de actualizare a memoriei cache criptată

Fluxheim 1.7.12 mută obiectele cache-ului de disc criptate la date legate de rădăcină și chei de index cu stare durabilă nonce. Prima pornire împotriva unei rădăcini criptate mai veche și fiecare rotație a cheilor locale, purifică intenționat la rece cache-ul înainte de a servi traficul.

  • Datele din cache-ul criptat sunt dispensabile și nu trebuie tratate ca sursă de date autoritară.
  • Oferiți fiecărei rădăcini cache stocare privată persistentă și nu copiați starea nonce între rădăcini independente.
  • Asigurați-vă că serverul de origine poate gestiona prima încălzire a cache-ului după o actualizare sau o rotație a cheii.
Română