作者:xwt4818386 | 来源:互联网 | 2023-02-02 15:55
在启动Varnish的时候,已经通过-T的参数来指定了管理Varnish的ip和端口,现在就可以连接这个ip和端口来进行Varnish的管理有两种连接方式:telnetipp
在启动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 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:使用哪一个配置