文档章节

varnish 4.0 官方文档翻译9-用户手册- 向Vanish下发指令

wild-life
 wild-life
发布于 2015/05/26 12:34
字数 1154
阅读 215
收藏 2

CLI-bossing Varnish around

CLI 向Vanish下发指令

一旦vanish启动,你可以使用命令行接口来控制它。

最轻松的使用CLI的方法是在运行varnishd的机器上运行,varnishadm

varnishadm help

如果你想远程使用varnishadm,有两种方法。

你可以使用ssh登录到运行varnishd的机器上然后varnishadm

ssh $http_front_end varnishadm help

同时你也可以配置vanishd接受远程的CLI连接,(使用-T和-S参数)

varnishd -T :6082 -S /etc/varnish_secret

然后在远程主机上运行vanishadm,像这样

varnishadm -T $http_front_end -S /etc/copy_of_varnish_secret help

但是你也看到,ssh是更方便的。

如果运行vanishadm没有添加参数,它将会从标准输入读取CLI命令,如果你指定了参数,它将这些参数作为单个CLI命令来执行。

CLI总是返回一个状态码,告诉你操作的结果,'200'为成功,其他状态码就有问题了。

vanishadm退出时使用状态1,并且如果不是200的状态码,它将在标准错误输出中打印状态码。


What can you do with the CLI

你能用CLI做些什么呢?

CLI提供给你几乎对vanishd所有的控制,一些重要的操作你可以执行:

  • load/use/discard VCL programs 载入/使用/禁用VCL程序

  • ban (invalidate) cache content 清除缓存

  • change parameters 改变参数

  • start/stop worker process 启动和停止work进程

接下来我们先简单的讨论这些。

Load, use and discard VCL programs

所有的缓存和策略定义都是通过VCL程序。

你可以载入多个VCL程序,同时它们中被指定成“active”的VCL程序,这些active的VCL程序将处理新的请求。

加载新的VCLc程序:

varnish> vcl.load some_name some_filename

加载过程将读取VCL程序文件,然后编译它,如果编译失败,就会提示类似如下错误:

.../mask is not numeric.
('input' Line 4 Pos 17)
                "192.168.2.0/24x",
----------------#################-

Running VCC-compiler failed, exit 1
VCL compilation failed

如果编译成功,VCL程序就被加载成功,同时你就可以激活它了,随你什么时候:

varnish> vcl.use some_name

如果你觉得有异常(通常是在测试后),你可以又回滚到之前的VCL程序:

varnish> vcl.use old_name

这种转换是瞬时的,所有新的请求就立即开始使用active的VCL程序。当前的请求将被使用VCL来处理。

有个好主意就是设计一个应急的VCL,同时总是加载它,那么你就可以转换它使用单个的vcl.use 命令。

Ban cache content

禁止缓存

varnish提供"purges"来从缓存中移除某些内容,假如你明确的知道他们是些什么。

但是有时它不需要你指定明确的需要移除的内容。

想象个场景,公司的logo变了,现在需要从varnish cache中清除老的log:

varnish> ban req.url ~ "logo.*[.]png"

就应该这样做,是的,正则表达式。

我们调用"banning"因为这些对象仍然是在cache中的,但是它们在传递过程中被禁用了。

当接收到http请求,我们测试的正则表达式的每个对象,而不是立即检查每一个缓存了的对象。

Banning实现比直接重启varnish来摆脱这些错误的缓存内容要更廉价。

Change parameters

改变参数 参数可以通过命令行添加'-p'来设置,同时他们也被检查和改变从运行的CLI中。

varnish> param.show prefer_ipv6
200
prefer_ipv6         off [bool]
                    Default is off
                    Prefer IPv6 address when connecting to backends
                    which have both IPv4 and IPv6 addresses.

varnish> param.set prefer_ipv6 true
200

通常修改参数不是个好主意,除非你有个好主意,像性能调优或者安全配置。

但是某些参数是需要重启子进程才能生效。这些总是在参数的描述标明。

Starting and stopping the worker process

启动和停止worker进程

通常你应当让worker进程运行着,但是如果你需要停止或者启动它,可以使用下面的命令:

varnish> stop

然后:

varnish> start

如果你启动varnishd使用了-d(debugging)参数,你将总是需要明确地启动child进程。

有可能child进程die(not work),主进程将自动重启child进程,但是你也可以禁用自动重启,使用 'auto_restart'参数


© 著作权归作者所有

wild-life
粉丝 17
博文 94
码字总数 56147
作品 0
成都
技术主管
私信 提问
varnish 4.0 官方文档翻译1-管理员文档

varnish 管理员文档 varnish缓存是web应用加速器,同时也作为http反向缓存代理被人熟知。你可以安装varnish在任何http的前端,同时配置它缓存内容。varnish真的很快,单个代理的分发速度可以...

wild-life
2015/05/09
0
0
varnish 4.0 官方文档翻译10-用户手册-Storage backends

Storage backends 存储后端 Intro varnish拥有可插入式的存储后端,它可以存储数据在在各种不同表现特性的后端中。默认的配置就是使用限制了大小的malloc后端(基于内存的)。对于一些vanis...

wild-life
2015/05/28
0
0
varnish 4.0 官方文档翻译7-用户手册-安全第一

Security first 安全第一 如果你仅仅抓专注于运行varnish,或者所有人都是这个观点,那么就可以跳过该节了.我们保护你的方方面面当http请求来的时候. 如果你的web基础设施是外包的,管理是分开的...

wild-life
2015/05/10
0
0
varnish 4.0 官方文档翻译3-简要教程

varnish 4.0简要教程 这部分教程包含了varnish基本原理。囊括了什么是varnish、它怎样工作,同时也包含了开始使用和运行varnish。这部分过后你可能想继续了解用户向导(varnish用户引导)。 如...

wild-life
2015/05/08
0
0
varnish 4.0 官方文档翻译4-varnish用户手册概况

The Varnish Users Guide varnish用户手册 varnish 文档包含三个主要的文档: The Varnish Tutorial 解释一些基本的东西让你开始使用varnish The Varnish Users Guide 说明varnish怎样工作以...

wild-life
2015/05/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

策略模式

策略模式封装的是算法,而状态模式侧重的对象状态的转变。 /** * 策略,定义计算报价算法的接口 */public interface Strategy { /** * 计算应报的价格 * @param goo...

铁骨铮铮
29分钟前
0
0
如何用JavaScript写一个区块链?

Part1实现一个基本的区块链 1.区块链 区块链是由一个个任何人都可以访问的区块构成的公共数据库。这好像没什么特别的,不过它们有一个有趣的属性:它们是不可变的。一旦一个区块被添加到区块...

骚年锦时
32分钟前
0
0
HTTP协议

HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 HTTP是一个基于TCP/IP通信协议...

惊尘大人
34分钟前
0
0
Feign输出Info级别日志

背景   spring cloud netfix组件中,feign相关的日志默认是不会输出的,需要自定义配置才能输出,并且Feign只对Debug基本的日志做出响应, 实际业务需要输出Info级别的日志,所以需要做自定...

xiaomin0322
39分钟前
3
0
面向解决问题的java编程,spring boot,mybatis generator和坑-1starter

1、start一个spring boot项目 第一课我们也不能免俗,要从starter开始,spring boot的起始项目脚手架可以从spring boot官方starter生成地址开始:https://start.spring.io/ 这张图列出了一个...

wphmoon
40分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部