This shows you the differences between two versions of the page.
saisp:labs:09:contents:05 [2014/05/05 09:15] razvan.deaconescu [05. Utilizare VCL] |
saisp:labs:09:contents:05 [2014/05/05 13:02] (current) razvan.deaconescu |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ==== 05. Utilizare VCL ==== | + | ==== 05. [15p] Utilizare VCL ==== |
Pentru a realiza configurări în Varnish se folosește sintaxa [[https://www.varnish-cache.org/docs/3.0/reference/vcl.html|VCL]] (//Varnish Configuration Language//). Aceasta permite încărcarea dinamică de configurații într-o instanța Varnish în rulare. | Pentru a realiza configurări în Varnish se folosește sintaxa [[https://www.varnish-cache.org/docs/3.0/reference/vcl.html|VCL]] (//Varnish Configuration Language//). Aceasta permite încărcarea dinamică de configurații într-o instanța Varnish în rulare. | ||
- | Folosind fișierul de configurare ''/etc/varnish/default.vcl'', configurați un TTL de 1 oră pentru fișierele din directorul ''/data/'' servite de Varnish. Celelalte fișiere/pagini servite vor folosi valoarea implicită a TTL-ului. | + | Folosind fișierul de configurare ''/etc/varnish/default.vcl'', configurați un TTL de 1 oră pentru fișierele din directorul ''/data/'' servite de Varnish. Celelalte fișiere/pagini servite vor folosi valoarea implicită a TTL-ului (de ''120'' de secunde). |
<note tip> | <note tip> | ||
Line 11: | Line 11: | ||
Reporniți serviciul ''varnish'' după realizarea configurației. | Reporniți serviciul ''varnish'' după realizarea configurației. | ||
</note> | </note> | ||
+ | |||
+ | Așteptați 3-4 minute după primul acces la o pagină din directorul ''/data/'' și apoi reaccesați-o. O configurație corectă va înseamna un ''hit'' în pagină (cache-ul de o oră nu va fi expirat). | ||
+ | |||
+ | <solution -hidden> | ||
+ | Folosim fișierul de configurare ''/etc/varnish/default.vcl'' pentru a specifica un TTL de 1 oră pentru fișierele din directorul ''/data/'' servite de Varnish:<code> | ||
+ | root@varnish:~# vi /etc/varnish/default.vcl | ||
+ | root@varnish:~# cat /etc/varnish/default.vcl | ||
+ | [...] | ||
+ | sub vcl_fetch { | ||
+ | if (req.url ~ "^/data/") { | ||
+ | set beresp.ttl = 1h; | ||
+ | } | ||
+ | } | ||
+ | [...] | ||
+ | </code> | ||
+ | Repornim serviciul ''varnish'':<code> | ||
+ | root@varnish:~# service varnish restart | ||
+ | </code> | ||
+ | Pornim ''varnishlog'' și realizăm un prim acces la pagina ''/data/100k.dat'':<code> | ||
+ | root@varnish:~# varnishlog -i VCL_Call | ||
+ | 12 BackendOpen b default 192.168.0.3 42743 192.168.0.2 80 | ||
+ | 12 BackendReuse b default | ||
+ | 11 SessionOpen c 192.168.0.1 38323 :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 36649746 1399270868.505576372 1399270868.517827511 0.000154495 0.005080462 0.007170677 | ||
+ | </code> | ||
+ | După 4 minute realizăm un nou acces la acea pagină și vedem că obținem ''hit'' în output-ul ''varnishlog'', deci pagina se găsește încă în cache:<code> | ||
+ | 11 SessionClose c timeout | ||
+ | 11 SessionOpen c 192.168.0.1 38353 :80 | ||
+ | 11 VCL_call c recv | ||
+ | 11 VCL_call c hash | ||
+ | 11 VCL_call c hit | ||
+ | 11 VCL_call c deliver | ||
+ | 11 ReqEnd c 36649747 1399271122.729481459 1399271122.743085384 0.000142336 0.000067949 0.013535976 | ||
+ | </code> | ||
+ | </solution> |