varnish在内存模式下比较高效,不过其有一个缺点就是cache是放在内存里的,一旦重启,cache文件就没了。而且往往由于需要调整vcl配置文件,而让配置文件生效的话就没必要重启应用 。这时可以通过reload配置文件使配置生效。varnish重置配置文件的方法我这里总结了三种 ———— telnet管理法、varnishadm重载法、varnish_reload_vcl脚本法。

方法一、telnet管理法

1、登陆到管理接口:

 1>telnet 127.0.0.1 2000
 2>help  (利用该命令可以得到很多的修改帮助)
 3返回:
 4200 377
 5help [command]
 6ping [timestamp]
 7auth response
 8quit
 9banner
10status
11start
12stop
13stats
14vcl.load
15vcl.inline
16vcl.use
17vcl.discard
18vcl.list
19vcl.show
20param.show [-l] []
21param.set
22purge.url
23purge [&& ]24purge.list
25
26使用命令:
27vcl.load new.vcl /App/varnish/etc/varnish/online.vcl

出错的话会有提示,成功会返回200

注意,这里configname和后面对应的filename不一定要完全一致,但后面reload加载配置时,一定要和configname一致。

vcl.use new.vcl (成功后同样会返回200)

此时新的配置文件已经生效!

方法二、varnishadm重载法

运行varnishadm工具后出现的提示界面和telnet进行管理的界面是相同的,当然重载配置文件的方法也是相同的。都是先通过vcl.load检查配置文件是否有问题。发现是200后,再通过vcl.use加载新的配置并生效。所以从本质上说两者并没有区别。

方法三、varnish_reload_vcl脚本法

能过yum包安装的话,可以直接使用该脚本。而且通过源码包进行安装的话,在源码包的的redhat目录下也含有该脚本,不过并不能直接使用该脚本,该脚本会读取/etc/sysconfig/varnish文件里的一些变量(该文件更改后就可以使用了)。

而如果细看该脚本的话,其原理是通过varnishadm命令,重新读取配置文件并载入。原理上来说和上面两种方法也没太大区别。所以总的来说,三种方法属于同宗同源