This shows you the differences between two versions of the page.
|
saisp:labs:09:contents:05 [2014/05/05 00:44] razvan.deaconescu |
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. | + | 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> | ||