在啓動Varnish的時候,已經通過-T的參數來指定了管理Varnish的ip和端口,現在就可以
連接這個ip和端口來進行Varnish的管理
有兩種連接方式:
- telnet ip port 的方式,會進入一個純文本的命令行管理界面
- varnishadm –T ip:port的方式,進入varnish的命令行管理界面
兩種方式都是進入Varnish Command Line Interface,簡稱CLI,在CLI裏面可以控制和改
變大多數Varnish運行的參數和配置,而無須中斷Varnish的服務。
CLI主要能完成如下的功能:
- 配置:能上傳、修改和刪除VCL文件
- 參數:能查看和修改各種參數
- 清除緩存:可以清除Varnish中的緩存內容
- 進程管理:可以啓動或者停止緩存子進程
CLI中可用的命令:
1.backend.list:列出定義中的backend,包括它們的健康狀態
2.backend.set_health matcher state:爲某個backend設置健康狀態,當你想要把某個backend從使用序列中移出的時候,這個命令很有用
3.ban field operator argument [&& field operator argument […]]:使得匹配ban表達式的內容從緩存中清除。
- 一個ban表達式包含一到多個條件,一個條件由一個字段、一個操作符、一個參數構成,多個條件之間可以用“&&”來表示 and的關係
- 字段可以是任意的VCL變量,如:req.url, req.http.host or obj.http.set-cookie等
- 操作符有:==表示等、~匹配正則表達式、>、<、!等
參數可以是一個用雙引號引起來的字符串,也可以是正則表達式、或者數字。數字後面開可以跟“KB”, “MB”, “GB” 或“TB”等。
示例如下:清除請求url完全匹配“/news”的緩存內容:
ban req.url == "/news“
- 清除請求url不能以.ogg結尾,同時這對象的大小不能大於10M 的緩存內容:
ban req.url !~ ".ogg$" && obj.size > 10MB
- 清除host爲example.com或者www.example.com,同時從backend獲得set-cookie頭裏麪包含userid=1663 ,的緩存內容
ban req.http.host ~ "^(?i)(www\.)example.com\$" && obj.http.set-cookie ~"USERID=1663"
4.ban.list:內容ban列表。
1:如果緩存的內容比ban舊,那麼這個緩存內容會被標示成banned,不能再使用這個緩存內容,需要從backend獲取內容。
2:如果ban的表達式比所有的緩存對象都舊的話,它將從ban的list裏面去掉
3:ban.list輸出的格式如下:
0x7fea4fcb0580 1303835108.618863 131G req.http.host ~ www.myhost.com &&req.url ~ /some/url
第一個字段是ban的地址,第二個字段是時間戳,第三個字段表示有多少個對象
受此ban的影響(通常在debug時纔有效),G表示這個ban已經Gone,也就不再有效了,後面的內容纔是真正的ban的內容。
5.ban.url regexp :要ban的url,匹配這個規則的url,緩存立即失效,注意一點:在這個url裏面host是會被忽略的。
6.help [command]:顯示命令的幫助,不寫命令就顯示所有的命令
7.param.set:設置param的值
8.param.show [-l] [param]:顯示param以及他們的值。-l的話,會帶着命令的簡短描述
9.ping [timestamp]:ping Varnish的緩存進程,保持連接是活動的
10.quit:退出CLI管理
11.start:如果Varnish的緩存進程沒有啓動的話,啓動它
12.status:檢查Varnish的緩存進程的狀態
13.stop:停止Varnish的緩存進程
14.storage.list:列表顯示定義的storage backends
15.vcl.discard configname:廢棄某個配置,注意,如果這個配置的引用不爲0的話,簡單的說就是已經使用了,這個命令無效
16.vcl.inline configname vcl:使用VCL來創建一個新的配置
17.vcl.list:列出可用的配置,以及參照使用他們的數量
18.vcl.load configname filename:創建一個新的配置,配置的名字是configname,內容是filename指定的文件內容,如vcl.load aa default.vcl
19.vcl.show configname:顯示配置的具體內容
20.vcl.use configname:使用哪一個配置