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 stranaUporabi kada
memoryYou need the fastest cache and can keep objects in RAM.
diskYou need cache capacity that survives process restarts.
tieredŽeliš memory za vruće objekter in disk za veći kapacitet.
storage-binOčekuješ visoki churn in želiš 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

KontrolaNamen
lockCollapse concurrent misses so one request fills the cache.
range.sliceCache fixed byte slices for large files and resumable downloads.
peer_fillDovoli enemu edge strežniku, da napolni vsebino iz drugega edge strežnika pred uporabo origin.
origin_protectionOgraniči concurrent origin fill tijekom visokog pritiska.
cache_purgerČisti stale disk entries v bounded batch.

Use cache carefully

  • Zahteve, ki nosijo Authorization ali Proxy-Authorization, vedno obidejo iskanje in shranjevanje v predpomnilniku v skupni rabi.
  • Napačno oblikovan ali nasprotujoč si odgovor Cache-Control direktive so zavrnjene namesto vrnitve na konfigurirane TTL-je; s-maxage ima prednost pred max-age.
  • must-revalidate, proxy-revalidate in s-maxage prepovedujejo zastarelo ponovno uporabo po poteku svežine.
  • Keep cache keys bounded and predictable.
  • Za vsak delujoči proces Fluxheim uporabite en korenski imenik storage-bin; lastništvo uporablja svetovalni zaklep datotečnega sistema, skupni korenski imeniki z več zapisovalci pa brez preverjenega zunanjega zaklepanja niso varni.
  • Uporabi purge ali kratke TTL kad se content često mijenja.
  • Bypass on cookies, preview headers, and unsafe query strings.

Opomba o nadgradnji šifriranega predpomnilnika

Fluxheim 1.7.12 premakne šifrirane objekte diskovnega predpomnilnika v korensko vezane podatke in indeksne ključe s trajnim nonce stanjem. Prvi zagon s starejšim šifriranim korenom in vsaka rotacija lokalnega ključa namerno hladno očisti ta predpomnilnik, preden služi prometu.

  • Šifrirani predpomnilnik obravnavajte kot pospešek za enkratno uporabo, ne kot vir zapisa.
  • Dajte vsakemu korenu predpomnilnika trajno zasebno shrambo in ne kopirajte stanja nonce med neodvisnimi koreni.
  • Načrtujte izvorno zmogljivost za prvo ogrevanje po nadgradnji ali vrtenju ključev.
Slovenščina