zoukankan      html  css  js  c++  java
  • Varnish 不重启使之配置生效的方法

           Varnish 在内存模式下比较高效,不过它有一个缺点就是 缓存是放在内存里的,一旦重启, 缓存文件也就没了。

           往往由于需要调整 vcl 配置文件,但是又不想重启varnish服务,就让配置文件生效的话。这时就可以通过 reload 配置文件使之生效。

           Varnish 重载配置文件的方法,主要有:telnet管理法、varnishadm重载法、varnish_reload_vcl脚本法。

    一、telnet管理法

           使用 telnet 命令登录到管理接口。

    [root@localhost varnish]# telnet 127.0.0.1 6082
    Trying 127.0.0.1...
    Connected to localhost.localdomain (127.0.0.1).
    Escape character is '^]'.
    200 232     
    -----------------------------
    Varnish Cache CLI 1.0
    -----------------------------
    Linux,2.6.18-308.el5,x86_64,-sfile,-smalloc,-hcritbit
    varnish-3.0.6 revision 1899836
    
    Type 'help' for command list.
    Type 'quit' to close CLI session.
    
    help
    200 447     
    help [command]
    ping [timestamp]
    auth response
    quit
    banner
    status
    start
    stop
    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>
    panic.show
    panic.clear
    storage.list
    backend.list
    backend.set_health matcher state
    ban.url <regexp>
    ban <field> <operator> <arg> [&& <field> <oper> <arg>]...
    ban.list

          然后使用如下命令

    vcl.load online_new.vcl  /data/varnish/etc/varnish/online.vcl     # 如果配置文件修改得有问题,此时会报错,返回的就不是2000
    200 13      
    VCL compiled.
    
    vcl.list
    200 87      
    active          3 boot
    available      0 online_new.vcl
    
    vcl.use online_new.vcl    # 执行此命令,此时新的配置文件已经生效
    200 0       
    
    vcl.list
    200 87      
    available       3 boot
    active           0 online_new.vcl

         我们也可以使用 vcl.show online_new.vcl 查看当前配置文件的内容。

    二、varnishadm 重载法

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

    三、varnish_reload_vcl 脚本法

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

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

            所以总的来说,三种方法属于同宗同源。

  • 相关阅读:
    Java静态代理学习
    Java反射学习三
    Java反射学习二
    Java反射学习一
    Java反射学习四
    linux下vim命令详解
    linux安装jdk
    转 知道这20个正则表达式,能让你少写1,000行代码
    excel函数2
    excel函数
  • 原文地址:https://www.cnblogs.com/morgan363/p/13698906.html
Copyright © 2011-2022 走看看