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

别说谁变了你拦得住时间么 提交于 2019-12-04 18:04:03

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'参数


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!