架构师日记——使用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:使用哪一个配置

猜你喜欢

转载自blog.csdn.net/qq_32198277/article/details/77129650