varnish不重启使配置生效的方法

2013年3月15日 发表评论 阅读评论

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

方法一、telnet管理法

1、登陆到管理接口:

    >telnet 127.0.0.1 2000
    >help  (利用该命令可以得到很多的修改帮助)
返回:
200 377
help [command]
ping [timestamp]
auth response
quit
banner
status
start
stop
stats
vcl.load <configname> <filename>
vcl.inline <configname> <quoted_VCLstring>
vcl.use <configname>
vcl.discard <configname>
vcl.list
vcl.show <configname>
param.show [-l] [<param>]
param.set <param> <value>
purge.url <regexp>
purge <field> <operator> <arg> [&& <field> <oper> <arg>]...
purge.list

使用命令:

vcl.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命令,重新读取配置文件并载入。原理上来说和上面两种方法也没太大区别。所以总的来说,三种方法属于同宗同源




本站的发展离不开您的资助,金额随意,欢迎来赏!

You can donate through PayPal.
My paypal id: itybku@139.com
Paypal page: https://www.paypal.me/361way

分类: 平台架构 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.