varnish vcl man 文档翻译

来源:互联网 发布:键盘电子琴软件 编辑:程序博客网 时间:2024/04/30 13:54

  近来听说了varnish这个东东,看描述说比squid性能强不少,但是国内知道这个玩意的人少上加少,所以特意翻译一下方便varnish这个东西再国内的推广.另外也被自己以后查阅提供点方便.

  

名称:  VCL - Varnish Configuration Language  Varnish配置语言

 

描述:这里没啥意思,如果大家感兴趣的话安装完varnish以后man  7  vcl

 

语法:

     VCL的语法非常简单,语法跟C和perl有点相似.每个指令是以分号结束,同时可以按照你自己的参数来选择跟C,C++,perl相同的注释语法.VCL不但有跟C语言类似的指定运算符(=),比较运算符(==),逻辑运算符(!,&&,!!)以外,vcl还支持正则表达样和用~进行的ACL匹配运算.

     不像C和Perl,反斜杠(/)字符在VCL中没有什么特别的含义,VCL使用%xx这个代表URLS的排除结构.

      可以使用set这样的关键字引进分配,他们并非用户定义的变量,这个值可以仅分配给附加给backend(后端)请求或者文本类的变量.大多数的变量需要指定,这些值必须有同样单元后缀.

      VCL有if,但是没有循环语句。

      用include语句可以指定其他的VCL文件并且包含再当前VCL配置中.

后端声明:

      后端声明创建和初始化一个以backend命名的类:

      backend www {

             .host = "www.example.com";
             .port = "http";
         }
       后端类也能再请求的时候选择一个后端:

       if (req.http.host ~ "^(www.)?example.com$") {
             set req.backend = www;
         }
Directors
        指导不同的后端是基于有一个在线的健康状态的.他们现在存在全的随机的指引方式.

        定义:

      director b2 random {
             .retries = 5;
             {
                 /* We can refer to named backends */
                 .backend        = b1;
                 .weight         = 7;
            }
             {
                 /* Or define them inline */
                 .backend        = {
                     .host = "fs2";
                 }
                 .weight         = 3;
             }
         }

随机指导
       随机指导有一个.retries的参数,这个是指定有多少个个尝试找到一个工作的后端.默认和前面定义的后端数目相同。

       另外一个选择是.weight 这个参数指定了一部分的流量发送到指定的后端上.

后端探针

        后端可以被检测他们是否是健康的状态,它使用req.backend.healthy来检测返回的状态..windows检测最后有多少polls.

         backend www {
             .host = "www.example.com";
             .port = "http";
             .probe = {
                 .url = "/test.jpg";
                 .timeout = 0.3 s;
                 .window = 8;
                 .threshold = 3;
             }
         }

    同时也能指定一个http的请求

   backend www {
             .host = "www.example.com";
             .port = "http";
             .probe = {
                 # NB: /r/n automatically inserted after each string!
                 .request =
                       "GET / HTTP/1.1"
                     "Host: www.foo.bar"
                     "Connection: close";
             }
         }

ACLS

 


此教程来源于97xxoo教程网(www.97xxoo.org)查看完整的教程请点:http://www.97xxoo.org/article/4/2008/20081124431.shtml

原创粉丝点击