架构师日记——使用CLI管理Varnish
2017-08-12 20:20
225 查看
在启动Varnish的时候,已经通过-T的参数来指定了管理Varnish的ip和端口,现在就可以
连接这个ip和端口来进行Varnish的管理
varnishadm –T ip:port的方式,进入varnish的命令行管理界面
两种方式都是进入Varnish Command Line Interface,简称CLI,在CLI里面可以控制和改
变大多数Varnish运行的参数和配置,而无须中断Varnish的服务。
参数:能查看和修改各种参数
清除缓存:可以清除Varnish中的缓存内容
进程管理:可以启动或者停止缓存子进程
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”的缓存内容:
清除请求url不能以.ogg结尾,同时这对象的大小不能大于10M 的缓存内容:
清除host为example.com或者www.example.com,同时从backend获得set-cookie头里面包含userid=1663 ,的缓存内容
4.ban.list:内容ban列表。
1:如果缓存的内容比ban旧,那么这个缓存内容会被标示成banned,不能再使用这个缓存内容,需要从backend获取内容。
2:如果ban的表达式比所有的缓存对象都旧的话,它将从ban的list里面去掉
3:ban.list输出的格式如下:
第一个字段是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:使用哪一个配置
连接这个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:使用哪一个配置
相关文章推荐
- 架构师日记——MongoDB简介和安装使用
- 阿里云API教程:使用CLI便捷管理您的阿里云ECS资源
- 使用wcf开发权限管理系统---c#菜鸟日记
- 百人团队敏捷转型日记 第一集 架构师没了、版本管理的蜕变
- 【Android日记】使用Git管理Android代码
- 架构师日记——ActiveMQ使用场景和优化建议
- 架构师日记——VCL介绍和使用
- 从零开始使用vue-cli搭建后端管理系统
- 不使用三方包时,如何在社交系统ThinkSNS中建立优雅的用户权限管理【研发日记13】
- 使用命令行刷新Magento索引管理 Rebuilt Magento Indexes in terminal with php-cli
- 使用CLI管理UCP遇到的问题
- 使用Vue-cli搭建后台简单管理系统vue.js2.0
- 架构师日记——规划Varnish的缓存大小和提高命中率
- 使用 toughcli 安装管理 toughradius
- 企业库(配置管理应用程序块)使用日记
- 不使用三方包时,如何在社交系统ThinkSNS中建立优雅的用户权限管理【研发日记13】
- 架构师日记——Varnish简介和安装
- 我使用的项目管理工具【Basic Tools】
- 一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之用户管理(2)
- Spring 使用注解方式进行事务管理