This shows you the differences between two versions of the page.
saisp:labs:09:contents:04 [2014/05/05 00:44] razvan.deaconescu |
saisp:labs:09:contents:04 [2014/05/05 13:02] (current) razvan.deaconescu |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ==== 04. Caching în Varnish ==== | + | ==== 04. [15p] Caching în Varnish ==== |
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. | 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:<code> | 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:<code> | ||
- | # varnishadm param.show default_ttl | + | root@varnish:~# varnishadm param.show default_ttl |
</code> | </code> | ||
Line 27: | Line 27: | ||
Urmăriți indicațiile de [[https://www.varnish-cache.org/docs/3.0/tutorial/purging.html#bans|aici]]. Folosiți comanda ''varnishadm'' pentru a accesa CLI-ul de configurare Varnish. | Urmăriți indicațiile de [[https://www.varnish-cache.org/docs/3.0/tutorial/purging.html#bans|aici]]. Folosiți comanda ''varnishadm'' pentru a accesa CLI-ul de configurare Varnish. | ||
</note> | </note> | ||
+ | |||
+ | <solution -hidden> | ||
+ | Pentru început așteptăm să expire cache-ul Varnish pentru pagina ''/data/100k.dat'' după care o reaccesăm de pe sistemul gazdă (''mjolnir''). În ''varnishlog'' va apărea un mesaj precum cel de mai jos:<code> | ||
+ | root@varnish:~# varnishlog -i VCL_Call | ||
+ | 12 BackendClose - default | ||
+ | 12 BackendOpen b default 192.168.0.3 42737 192.168.0.2 80 | ||
+ | 12 BackendReuse b default | ||
+ | 11 SessionOpen c 192.168.0.1 37545 :80 | ||
+ | 11 VCL_call c recv | ||
+ | 11 VCL_call c hash | ||
+ | 11 VCL_call c miss | ||
+ | 11 VCL_call c fetch | ||
+ | 11 VCL_call c deliver | ||
+ | 11 ReqEnd c 349371766 1399269441.987185955 1399269442.000175238 0.000062466 0.005365372 0.007623911 | ||
+ | 11 SessionClose c timeout | ||
+ | 11 SessionOpen c 192.168.0.1 37548 :80 | ||
+ | 11 VCL_call c recv | ||
+ | 11 VCL_call c hash | ||
+ | 11 VCL_call c hit | ||
+ | 11 VCL_call c deliver | ||
+ | 11 ReqEnd c 349371767 1399269494.260819435 1399269494.269623995 0.000100136 0.000047445 0.008757114 | ||
+ | </code> | ||
+ | Mai sus au fost două accese. Primul acces a generat ''miss'', iar al doilea a generat ''hit''. Pentru a anula cache-ul paginii ''/data/100k.dat'' folosim comanda ''ban'' în consola ''varnishadm'':<code> | ||
+ | root@varnish:~# varnishadm | ||
+ | [...] | ||
+ | varnish> ban req.http.host == "192.168.0.3" && req.url ~ ".dat$" | ||
+ | 200 | ||
+ | </code> | ||
+ | După această rulare, accesăm din nou pagina ''/data/100k.dat'' iar output-ul comenzii ''varnishlog'' va afișa un ''miss'':<code> | ||
+ | 12 BackendClose b default | ||
+ | 12 BackendOpen b default 192.168.0.3 42742 192.168.0.2 80 | ||
+ | 12 BackendReuse b default | ||
+ | 11 SessionOpen c 192.168.0.1 37566 :80 | ||
+ | 11 VCL_call c recv | ||
+ | 11 VCL_call c hash | ||
+ | 11 VCL_call c miss | ||
+ | 11 VCL_call c fetch | ||
+ | 11 VCL_call c deliver | ||
+ | 11 ReqEnd c 349371771 1399269730.749448776 1399269730.762530804 0.000076056 0.006940126 0.006141901 | ||
+ | </code> | ||
+ | </solution> |