近来听说了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
本文介绍了Varnish配置语言(VCL)的基本语法及其特点,包括后端声明、指导不同后端的方式、后端健康检查等关键配置项,并探讨了如何通过VCL实现高效的缓存策略。

1647

被折叠的 条评论
为什么被折叠?



