热门标签 | 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:使用哪一个配置


推荐阅读
  • varnish2.04配置文章来源:http:blog.163.comkoumm126blogstatic9540383720091182424317修改varnishheader ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • 本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ... [详细]
  • 深入解析Spring启动过程
    本文详细介绍了Spring框架的启动流程,帮助开发者理解其内部机制。通过具体示例和代码片段,解释了Bean定义、工厂类、读取器以及条件评估等关键概念,使读者能够更全面地掌握Spring的初始化过程。 ... [详细]
  • 本文详细介绍了 Python 中的条件语句和循环结构。主要内容包括:1. 分支语句(if...elif...else);2. 循环语句(for, while 及嵌套循环);3. 控制循环的语句(break, continue, else)。通过具体示例,帮助读者更好地理解和应用这些语句。 ... [详细]
  • 本文详细介绍了如何在云服务器上配置Nginx、Tomcat、JDK和MySQL。涵盖从下载、安装到配置的完整步骤,帮助读者快速搭建Java Web开发环境。 ... [详细]
  • 本文将详细介绍如何在没有显示器的情况下,使用Raspberry Pi Imager为树莓派4B安装操作系统,并进行基本配置,包括设置SSH、WiFi连接以及更新软件源。 ... [详细]
  • 本文探讨了如何利用HTML5和JavaScript在浏览器中进行本地文件的读取和写入操作,并介绍了获取本地文件路径的方法。HTML5提供了一系列API,使得这些操作变得更加简便和安全。 ... [详细]
  • 2017-2018年度《网络编程与安全》第五次实验报告
    本报告详细记录了2017-2018学年《网络编程与安全》课程第五次实验的具体内容、实验过程、遇到的问题及解决方案。 ... [详细]
  • 本文探讨了如何通过一系列技术手段提升Spring Boot项目的并发处理能力,解决生产环境中因慢请求导致的系统性能下降问题。 ... [详细]
  • 解决vCenter vSphere HA初始化失败的问题
    本文探讨了在集群中遇到的所有vSphere HA主机状态显示‘无法正确安装或配置vSphere HA代理’错误的情况,并详细介绍了排查与解决步骤,包括检查HA初始化错误及安装HA代理的常见故障排除方法。 ... [详细]
  • 在Java应用程序开发过程中,FTP协议被广泛用于文件的上传和下载操作。本文通过Jakarta Commons Net库中的FTPClient类,详细介绍如何实现文件的上传和下载功能。 ... [详细]
  • redis理论知识redis:非关系型数据库基于键值对的形式存储数据的查询效率非常的高没有表之间的约束查询起来比较方便redis特点:1.支持多种数据类型2.支持分布式存储3.功能 ... [详细]
  • 在项目中使用 Redis 时,了解其不同架构模式(如单节点、主从复制、哨兵模式和集群)对于确保系统的高可用性和扩展性至关重要。本文将详细探讨这些模式的特点和应用场景。 ... [详细]
  • 本文档汇总了Python编程的基础与高级面试题目,涵盖语言特性、数据结构、算法以及Web开发等多个方面,旨在帮助开发者全面掌握Python核心知识。 ... [详细]
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社区 版权所有