架構師日記——使用CLI管理Varnish

在啓動Varnish的時候,已經通過-T的參數來指定了管理Varnish的ip和端口,現在就可以
連接這個ip和端口來進行Varnish的管理

有兩種連接方式:

  1. telnet ip port 的方式,會進入一個純文本的命令行管理界面
  2. 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:使用哪一個配置

發佈了155 篇原創文章 · 獲贊 41 · 訪問量 25萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章