您的位置:首页 > 运维架构 > 网站架构

架构师日记——使用CLI管理Varnish

2017-08-12 20:20 225 查看
在启动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:使用哪一个配置
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  架构师