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
| Arka uç | Şu durumda kullanın |
|---|---|
memory | You need the fastest cache and can keep objects in RAM. |
disk | You need cache capacity that survives process restarts. |
tiered | Sıcak nesneler için bellek, daha büyük kapasite için disk kullanmak istiyorsunuz. |
storage-bin | Yüksek değişim bekliyorsunuz ve disk kullanımını sınırlı tutmak istiyorsunuz. |
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
| Kontrol | Amaç |
|---|---|
lock | Collapse concurrent misses so one request fills the cache. |
range.slice | Cache fixed byte slices for large files and resumable downloads. |
peer_fill | Origin kullanılmadan önce bir edge'in başka bir edge'den doldurmasına izin verin. |
origin_protection | Yüksek baskı altında eşzamanlı origin doldurmalarını sınırlayın. |
cache_purger | Eski disk girdilerini sınırlı partiler halinde temizleyin. |
Use cache carefully
AuthorizationveyaProxy-Authorizationtaşıyan istekler her zaman paylaşılan önbellek aramasını ve depolamayı atlar.- Hatalı biçimlendirilmiş veya çelişkili yanıt
Cache-Controlyönergeleri, yapılandırılmış TTL'lere geri dönmek yerine reddedilir;s-maxage,max-age'ya göre önceliklidir. must-revalidate,proxy-revalidateves-maxage, tazelik süresi dolduktan sonra eskimiş yeniden kullanımı yasaklar.- Keep cache keys bounded and predictable.
- Çalışan her Fluxheim işlemi için bir storage-bin kökü kullanın; sahiplik danışma amaçlı bir dosya sistemi kilidi kullanır ve paylaşılan çok yazıcılı kökler doğrulanmış harici kilitleme olmadan güvenli değildir.
- Content sık değişiyorsa purge veya short TTLs kullanın.
- Bypass on cookies, preview headers, and unsafe query strings.
Şifreli önbellek yükseltme notu
Fluxheim 1.7.12, şifrelenmiş disk önbellek nesnelerini dayanıklı tek seferlik durumla kök bağlantılı verilere ve dizin anahtarlarına taşır. Daha eski bir şifrelenmiş köke karşı ilk başlatma ve her yerel anahtar rotasyonu, trafiğe hizmet vermeden önce bu önbelleği kasıtlı olarak soğuk olarak temizler.
- Şifrelenmiş önbelleğe kaydın kaynağı olarak değil, tek kullanımlık hızlandırma olarak davranın.
- Her önbellek köküne kalıcı özel depolama alanı sağlayın ve bağımsız kökler arasında tek seferlik durumu kopyalamayın.
- Anahtarları yükselttikten veya döndürdükten sonra ilk ısınma için başlangıç kapasitesini planlayın.