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 puse | Lieto, kad |
|---|---|
memory | You need the fastest cache and can keep objects in RAM. |
disk | You need cache capacity that survives process restarts. |
tiered | Vēlies memory karstiem objektiem un disk lielākai ietilpībai. |
storage-bin | Sagaidi augstu churn un vēlies ierobežotu disk allocation. |
encrypted disk | You 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
| Kontrole | Mērķis |
|---|---|
lock | Collapse concurrent misses so one request fills the cache. |
range.slice | Cache fixed byte slices for large files and resumable downloads. |
peer_fill | Ļauj vienam edge aizpildīt no cita edge pirms origin izmantošanas. |
origin_protection | Ierobežo vienlaicīgus origin fill augsta spiediena laikā. |
cache_purger | Tīri stale disk entries ierobežotās partijās. |
Use cache carefully
- Pieprasījumi, kas satur
AuthorizationvaiProxy-Authorization, vienmēr apiet koplietotās kešatmiņas meklēšanu un krātuvi. - Nepareizi veidota vai pretrunīga atbilde
Cache-Controldirektīvas tiek noraidītas, nevis atgriežas pie konfigurētiem TTL;s-maxageir prioritāte pārmax-age. must-revalidate,proxy-revalidateuns-maxageaizliedz novecojušu atkārtotu izmantošanu pēc svaiguma derīguma termiņa beigām.- Keep cache keys bounded and predictable.
- Katram darbojošam Fluxheim procesam izmantojiet vienu storage-bin sakni; īpašumtiesībām izmanto konsultatīvu failu sistēmas bloķēšanu, un koplietotas vairāku rakstītāju saknes nav drošas bez pārbaudītas ārējas bloķēšanas.
- Izmanto purge vai īsus TTL, ja saturs bieži mainās.
- Bypass on cookies, preview headers, and unsafe query strings.
Šifrētas kešatmiņas jaunināšanas piezīme
Fluxheim 1.7.12 pārvieto šifrētus diska kešatmiņas objektus uz saknes datiem un indeksa atslēgām ar ilgstošu nonce stāvokli. Pirmā palaišana, izmantojot vecāku šifrētu sakni, un katra vietējās atslēgas rotācija, pirms trafika apkalpošanas apzināti auksti iztīra kešatmiņu.
- Uztveriet šifrēto kešatmiņu kā vienreiz lietojamu paātrinājumu, nevis ieraksta avotu.
- Katrai kešatmiņas saknei piešķiriet pastāvīgu privāto krātuvi un nekopējiet stāvokli starp neatkarīgām saknēm.
- Plānojiet sākotnējo jaudu pirmajai iesildīšanai pēc jaunināšanas vai atslēgu pagriešanas.