varnish案例學習

2021-09-25 22:27:44 字數 4032 閱讀 2653

一、定義在vcl_deliver中,向響應給客戶端的報文新增乙個自定義首部x-cache;

二、支援虛擬主機:

sub vcl_recv 。。}

三、強制對某資源的請求,不檢查快取;

/admin

/login

sub vcl_recv

if (req.url ~」test8.html」) 。。}

四、對特定型別的資源取消其私有的cookie標識,並強行設定其可以varnish快取的時長:

使用環境:有個別場景程式不嚴謹某些共同快取加上了cookie,我們可以強制他去掉cookie並且讓程式快取。

vcl_backend_response

if (bereq.url ~ 「(?i)\.css$」) }}

五、backend server的定義以及健康狀態檢測

1、backend server的定義:

backend name

.host: be主機的ip;

.port:be主機監聽的port;

.probe: 對be做健康狀態檢測;

.max_connections:並連線最大數量;

2、後端主機cluster以及健康狀態檢測方式:

參考:參考:詳細配置參考:man vmod_directors

probe name

.url: 判定be健康與否要請求的url;

.expected_response:期望響應狀態碼;預設為200;

varnish> backend.list

200backend name refs admin probe

default(192.168.31.129,,80) 11 probe healthy (no probe)

webser1(192.168.31.129,,80) 2 probe healthy 8/8

webser2(192.168.31.128,,80) 2 probe healthy 8/8

配置案例1:

(1)建立backend

backend webser1

}backend webser2

}(2)vcl_recv中呼叫不同資源發向不同後端

}配置案例2:

(1)建立backend

backend webser1

}backend webser2

}(2)初始化後端排程cluster

import directors;

sub vcl_init

(3)vcl_recv中呼叫

vcl_recv

負載均衡演算法:

fallback, random, round_robin, hash

六、移除單個快取物件

purge用於清理快取中的某特定物件及其變種(variants),因此,在有著明確要修剪的快取物件時可以使用此種方式。http協議的purge方法可以實現purge功能,不過,其僅能用於vcl_hit和vcl_miss中,它會釋放記憶體工作並移除指定快取物件的所有vary:-變種,並等待下乙個針對此內容的客戶端請求到達時重新整理此內容。另外,其一般要與return(restart)一起使用。下面是個在vcl中配置的示例。

v3:acl purgers

sub vcl_recv

return (lookup);}}

sub vcl_hit

}sub vcl_miss

}sub vcl_pass

}客戶端在發起http請求時,只需要為所請求的url使用purge方法即可,其命令使用方式如下:

七、生產環境案例一則:

}##新增clientip進入header便於日誌記錄

#url=」^/shop/\d/editmember」 \d==[0-9]等等查詢快取

if ( req.url ~ 「^/shop/(\d)/editmember」 || req.url ~ 「^/shop/(\d)/map」 || req.url ~ 「^/shop/(\d+)/dish-([^/]+)」 )

return (pass);

# return (lookup);

}sub vcl_pipe

sub vcl_pass

#命中purge清除快取

varnish學習筆記

varnish cache是一款開源的高效能的快取server。和老牌的squid對照有例如以下長處。1 varnish是基於記憶體快取資料的,所以處理速度比squid要快。2 varnish支援更高的併發量,而且比squid更加穩定。3 varnish能夠通過port管理,而squid沒有這個功能...

varnish 學習總結(VCL)

使用 花括號做界定符 使用 分號表示宣告結束 或 用於注釋 有內建變數 有 if 測試,但是沒有迴圈 使用終止語句 return 將控制權返回給varnish,沒有返回值 操作符 賦值 等值比較 模式匹配 取反 邏輯與 邏輯或 vcl 支援正規表示式,acl 匹配使用 操作。now 當前時間 下面的...

varnish相關配置 varnish

backend web1 配置乙個backendhost 可以是網域名稱也可以是ip主要是回源取資料 new sm web1 saintmode.saintmode web1,60 new web1 rr directors.round robin web1 rr.add backend sm we...