本節包含了怎樣經過varnish配置語言vcl來通知varnish如何處理http請求。後端
varnish是高度結構化的系統。大多數其餘的系統使用配置指令,在那裏你基本上打開和關閉大量的開關。而咱們選擇使用領域特定語言,被叫作VCL,來完成以前的功能。緩存
每一個進入的請求流經過varnish,同時你能夠支配如何經過VCL代碼來處理請求。你能夠讓某些後端直接處理請求,你能夠改變請求和響應,或者讓varnish擁有各類各樣動做依賴於特定的處理請求和響應的階段。這些特性讓Varnish變成特別強力的http程序,而不單單是緩存。性能
varnish轉換VCL成二進制代碼,當請求到達這些代碼將被執行。VCL對varnish的性能損耗是能夠忽略不計的。ui
VCL文件將子程序組織在一塊兒。不一樣的子程序在不一樣階段被執行。一個是在咱們收到請求時執行,其餘的當從後端收到文件時執行。spa
若是你在你的子程序不調用某個動做,varnish將執行一些built-in(內建)的VCL代碼。你能夠看到這些內建的代碼在builtin.vcl中註釋的部分code
本節包含如下:server
VCL Syntax Built in subroutines Request and response VCL objects actions Backend servers Multiple backends Backends and virtual hosts in Varnish Directors Health checks Hashing Misbehaving servers Using inline C to extend Varnish VCL Examples Device detection