Eu folosesc Nginx felie
modul pentru a umple memoria cache pentru fișiere mari, așa cum se arată aici https://docs.nginx.com/nginx/admin-guide/content-cache/content-caching/
Iată un exemplu de configurare
Locație / {
felie 1m;
proxy_cache cache;
proxy_cache_key $uri$is_args$args$slice_range;
proxy_set_header Interval $slice_range;
proxy_cache_valid 200 206 1h;
proxy_pass http://localhost:8000;
}
Articolul spune:
NGINX face posibilă stocarea în cache a unor astfel de solicitări de interval și treptat
umpleți memoria cache cu modulul Cache Slice, care împarte fișierele în
„felii” mai mici. Fiecare cerere de interval alege anumite felii care
acoperă intervalul solicitat și, dacă acest interval nu este încă memorat în cache, pune
acesta în cache. Toate celelalte solicitări pentru aceste felii preiau datele
din cache.
Întrebarea mea este ce se întâmplă când toate intervalele de octeți ale unui fișier au fost primite de la backend și Nginx a stocat în cache toate feliile. Nginx încă servește cererile folosind mai multe felii sau unește toate feliile pentru a face un fișier mare (la fel ca fișierul din backend) și apoi a servit cererile din fișierul mare?
După cum văd, cheia cache este proxy_cache_key $uri$is_args$args$slice_range;
. Deci, înseamnă că, deși Nginx are întregul conținut, va păstra acele felii separate și va servi cererile de octeți folosind feliile?
Mulțumiri