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

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

时间: 2024-07-29 18:37:38

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

varnish 4.0 官方文档翻译-简要教程

varnish 4.0简要教程 这部分教程包含了varnish基本原理.囊括了什么是varnish.它怎样工作,同时也包含了开始使用和运行varnish.这部分过后你可能想继续了解用户向导(varnish用户引导). 如果你正在web上读这些呢 注意每页左边的Next topic和Previous topic The fundamentals of web proxy caching with Varnish使用varnish作为web代理缓存的原理 Supported platforms 支持

varnish 4.0 官方文档翻译21-Reporting and statistics

Reporting and statistics 本部分包括如何查看Varnish正在做什么,从每个http请求流的详细记录到汇总统计计数器. Logging in Varnish Statistics varnishtop varnishhist varnishstat Logging in Varnish Varnish中一个很棒的特点是工作日志的记录方式.varnish不记录日志到日志文件,而是调用VSL记录到共享内存片段,VSL-varnish共享日志.当这个片段被写完后,varnish

varnish 4.0 官方文档翻译20-Device detection

Device detection 设备检测基于请求中的User-agent找出哪种内容返回给客户端. 使用Device detection情况的一个例子,发送给小屏幕的手机客户端或者复杂的网络环境,减少发送文件的数量,或者提供给不能解码的客户端一个video解码器. 有些使用这种方案的典型场景: 重写url 使用不同的后端给客户端 改变后端请求为了让后端发送裁剪的内容 可能为了便于理解,下文中假定req.http.X-UA-Device头表示当前前客户端,同时每种客户端是唯一的. 简单的像这样设

varnish 4.0 官方文档翻译7-用户手册-安全第一

Security first 安全第一 如果你仅仅抓专注于运行varnish,或者所有人都是这个观点,那么就可以跳过该节了.我们保护你的方方面面当http请求来的时候. 如果你的web基础设施是外包的,管理是分开的,那么你就需要考虑安全了. Varnish在4个权威的等级提供安全,大致关系到怎样让命令生效和在哪儿生效. the command line arguments, the CLI interface, VCL programs, and HTTP requests. Command l

varnish 4.0 官方文档翻译19-VCL Examples

VCL Examples Manipulating request headers in VCL 在VCL中操作请求的header. 当我们想移除发送到web服务器/images目录的所有对象的cookie可以这样: sub vcl_recv {     if (req.url ~ "^/images") {     unset req.http.cookie;     } } 这样当请求被后端处理时在http的header中将不再有cookie信息.有用的是使用if语句.在匹配的UR

varnish 4.0 官方文档翻译22-Varnish Website Performan

Varnish and Website Performance 本节集中解决如何调优varnish server,同时如何使用varnish优化你的web站点. 一共有三小节.第一小节你应该想到varnish的各种工具和功能,下一小节如何从cache中清除已经缓存的内容.清除内容是一项基本功能,因为它允许给缓存的对象增加 TTL.TTL越大varnish保持在缓存中的时间越久,这意味着varnish处理更多的请求,只将少部分的请求传递到相对较慢的后端. 最后一小节,处理web内容的压缩.当从后端

varnish 4.0 官方文档翻译7-用户手册-重要命令行参数

重要的命令行参数 当启动varnish时有两个重要的参数你必须设置: 一个是处理http请求的tcp监听端口,另一个是处理真实请求的后端server 如果你使用操作系统自带的包管理工具安装的varnish,你将在下面的文件找到启动参数: Debian, Ubuntu: /etc/default/varnish Red Hat, Centos: /etc/sysconfig/varnish FreeBSD: /etc/rc.conf (See also: /usr/local/etc/rc.d/v

varnish 4.0 官方文档翻译16-Backend servers/M/B/D/H

Backend servers varnish有"后端"或者"源"服务器的概念.backend server提供给varnish加速的内容. 第一步设置是告诉varnish从哪儿找到backend server.使用你喜欢的编辑器打开varnishd引入的VCL文件. VCL文件的开头有一小段有点像这样: # backend default { #     .host = "127.0.0.1"; #     .port = "8080

varnish 4.0 官方文档翻译14-Built in subroutines

Built in subroutines vcl_recv 在接收到完整的客户端请求后调用这个子程序.它决定是否处理请求,怎样处理请求,使用哪一个后端. 它也可运用于修改请求,一些经常自己做的事情. vcl_recv子程序可以通过调用return()来结束,通过以下关键字: synth(status code, reason)     Return a synthetic object with the specified status code to the client and abando