Vrem să vedem cum se comportă cache-ul în Varnish. Intrările în Varnish sunt cache-uite pentru o perioadă de timp înainte să expire. După expirarea timpului respectiv, se realizează o nouă cerere către serverul web pentru obținerea din nou a paginii.
Timpul de viață al cache-ului este dat de o variabilă TTL internă a Varnish. Valoarea sa este în mod implicit configurată la 120
de secunde. Putem determina acest lucru prin intermediul comenzii:
root@varnish:~# varnishadm param.show default_ttl
Valorea implicită, afișată de comanda de mai sus este 120
de secunde. Această valoare poate fi configurată în fișierul /etc/default/varnish
; este vorba de directiva VARNISH_TTL
.
Ca să urmărim expirarea cache-ului, vom folosi comanda varnishlog
în forma de mai jos:
root@varnish:~# varnishlog -i VCL_Call
Apoi facem cereri către fișierele cu extensia .dat
menționate în exercițiul anterior.
Observăm că apare un mesaj ce conține cuvântul miss
atunci când informația nu se găsește în cache, și apoi un mesaj ce conține cuvântul hit
când informația este în cache. După 120
de secunde cache-ul va expira și atunci un acces va genera un miss
.
După ce ați generat un mesaj miss
pe fișierul 100k.dat
, adică informația nu era, dar acum este, în cache, rescrieți fișierul pe serverul web, în directorul /var/www/data/100k.dat
folosind comanda:
root@web:/var/www/html/data# dd if=/dev/urandom of=100k.dat bs=100k count=1
Apoi accesați din nou fișierul și urmăriți output-ul comenzii varnishlog
. Veți observa că fișierul a fost obținut din cache. Până când cache-ul nu expiră orice modificare a fișierului nu va fi vizibilă în cache.
Pentru a preveni rămânerea în cache a unui obiect dat, se poate folosi purging sau banning. După ce au ajuns în cache fișierele cu extensia .dat
, faceți ban acelor fișiere pentru a fi recitite de pe server.
varnishadm
pentru a accesa CLI-ul de configurare Varnish.