VCL介紹和使用

东方求败 2024-04-09 18:00 14次浏览 0 条评论 taohigo.com

VCL簡介

VCL(Varnish Configuration Language):Varnish配置語言,語法簡單,功能強大,類似於c,perl。主要用來配置如何處理請求和內容的緩存策略。

VCL在執行時會轉換成二進制代碼

VCL文件被分為多個子程序,不同的子程序在不同的時間裡執行,比如一個子程序在接到請求時執行,另一個子程序在接收到後端服務器傳送的文件時執行

基本語法介紹

  1. 用花括號做界定符,使用分號表示聲明結束。註釋用//,#,/* */
  2. 賦值(=)、比較(==)、和一些佈爾值(!、&&、||),!(取反)等類似c語法
  3. 支持正則表達式,ACL匹配使用~操作,如if(req.uri ~ “abc$”){…},表示請求的uri以abc結尾
  4. 不同於C的地方,反斜杠()在VCL沒有特殊的含義。隻是用來匹配URLs
  5. VCL沒有用戶定義的變量,隻能給backend、request、document這些對象的變量賦值,大部分是手工輸入的,而且給這些變量分配值的時候,必須有一個VCL兼容的單位
  6. VCL有if,但是沒有循環
  7. 可以使用set來給request的header添加值,unset或remove來刪除某個header

聲明backend

可以配置多個後臺ip和端口

backend abc{
.host = "127.0.0.1";//ip
.port = "8080";//端口
.connect_timeout = 1s;//連接超時時間
.first_byte_timeout = 5s;//等待從backend傳輸過來的第一個字符的時間
.between_bytes_timeout = 2s;//兩個字符的間隔時間
.max_connections=100;//最大連接數
}
backend jkl{
.host = "127.0.0.1";
.port = "9090";
}