热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

在启动Varnish的时候,已经通过-T的参数来指定了管理Varnish的ip和端口,现在就可以连接这个ip和端口来进行Varnish的管理有两种连接方式:telnetipp

在启动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:使用哪一个配置


推荐阅读
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 带添加按钮的GridView,item的删除事件
    先上图片效果;gridView无数据时显示添加按钮,有数据时,第一格显示添加按钮,后面显示数据:布局文件:addr_manage.xml<?xmlve ... [详细]
  • 生产环境下JVM调优参数的设置实例
     正文前先来一波福利推荐: 福利一:百万年薪架构师视频,该视频可以学到很多东西,是本人花钱买的VIP课程,学习消化了一年,为了支持一下女朋友公众号也方便大家学习,共享给大家。福利二 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 本文介绍了一种求解最小权匹配问题的方法,使用了拆点和KM算法。通过将机器拆成多个点,表示加工的顺序,然后使用KM算法求解最小权匹配,得到最优解。文章给出了具体的代码实现,并提供了一篇题解作为参考。 ... [详细]
  • 正则表达式及其范例
    为什么80%的码农都做不了架构师?一、前言部分控制台输入的字符串,编译成java字符串之后才送进内存,比如控制台打\, ... [详细]
  • Summarize function is doing alignment without timezone ?
    Hi.Imtryingtogetsummarizefrom00:00otfirstdayofthismonthametric, ... [详细]
  • 玩转直播系列之消息模块演进(3)
    一、背景即时消息(IM)系统是直播系统重要的组成部分,一个稳定的,有容错的,灵活的,支持高并发的消息模块是影响直播系统用户体验的重要因素。IM长连接服务在直播系统有发挥着举足轻重的 ... [详细]
  • 在一对一直播源码使用过程中,有时会出现软键盘切换闪屏问题,就是当切换表情的时候屏幕会跳动,因此要对一对一直播源码表情面板无缝切换进行优化。 ... [详细]
  • TableAPI报一下异常:FieldtypesofqueryresultandregisteredTableSink
    报错信息如下:Exceptioninthread“main”org.apache.flink.table.api.ValidationException:Fieldtypesofq ... [详细]
author-avatar
xwt4818386
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有