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 pusėNaudok, kai
memoryYou need the fastest cache and can keep objects in RAM.
diskYou need cache capacity that survives process restarts.
tieredNori memory karštiems objektams ir disk didesnei talpai.
storage-binTikiesi didelio churn ir nori 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

KontrolėTikslas
lockCollapse concurrent misses so one request fills the cache.
range.sliceCache fixed byte slices for large files and resumable downloads.
peer_fillLeisk vienam edge užpildyti iš kito edge prieš naudojant origin.
origin_protectionRibok concurrent origin fill esant didelei apkrovai.
cache_purgerValyk stale disk entries bounded batch.

Use cache carefully

  • Užklausos, turinčios Authorization arba Proxy-Authorization, visada apeina bendros talpyklos paiešką ir saugojimą.
  • Netinkamai suformuotas arba prieštaraujantis atsakas Cache-Control direktyvos atmetamos, o ne grįžta prie sukonfigūruotų TTL; s-maxage turi pirmenybę prieš max-age.
  • must-revalidate, proxy-revalidate ir s-maxage draudžia pakartotinai naudoti pasenusį šviežumo galiojimo laiką.
  • Keep cache keys bounded and predictable.
  • Kiekvienam veikiančiam Fluxheim procesui naudokite po vieną storage-bin root; nuosavybei valdyti naudojamas patariamasis failų sistemos užraktas, o bendri kelių writers roots nėra saugūs be patikrinto išorinio blokavimo.
  • Naudok purge arba trumpus TTL, kai content dažnai keičiasi.
  • Bypass on cookies, preview headers, and unsafe query strings.

Užšifruotos talpyklos atnaujinimo pastaba

Fluxheim 1.7.12 perkelia užšifruotus disko talpyklos objektus į šakninius duomenis ir indekso raktus, turinčius patvarią būseną. Pirmasis paleidimas naudojant senesnę šifruotą šaknį ir kiekvienas vietinio rakto pasukimas, prieš aptarnaujant srautą, sąmoningai išvalo šią talpyklą.

  • Užšifruotą talpyklą traktuokite kaip vienkartinį pagreitį, o ne kaip įrašo šaltinį.
  • Suteikite kiekvienai talpyklos šakninei nuolatinei privačiai saugyklai ir nekopijuokite jokios būsenos tarp nepriklausomų šaknų.
  • Suplanuokite pradinį pajėgumą pirmajam pašildymui po atnaujinimo arba pasukę raktus.
Lietuvių