varnish工作原理及配置

varnish工作原理及配置

ID:8796277

大小:58.01 KB

页数:18页

时间:2018-04-08

varnish工作原理及配置_第1页
varnish工作原理及配置_第2页
varnish工作原理及配置_第3页
varnish工作原理及配置_第4页
varnish工作原理及配置_第5页
资源描述:

《varnish工作原理及配置》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Varnish工作原理及配置网址:http://ixdba.blog.51cto.com/2895551/6825551、VCL使用说明VCL,即为VarnishConfiguationLanguage,用来定义varnish的存取策略,VCL语法比较简单,跟C和perl比较相似,可以使用指定运算符“=”,比较运算符“==”,逻辑运算符“!,&&,!!”等形式。还支持正则表达样和用“~”进行ACL匹配运算,同时还可以使用“set”这样的关键字来指定变量。需要注意的是,“”字符在VCL里没有特别的含义,这点与其它语言略有不同,另外,VCL只是配置,并不是真正的编程语言

2、,没有循环,也没有自定义变量。 在讲述Varnish配置之前,首先需要了解下varnish的配置语法,即VCL,下面对VCL常用的一些内置函数和公用变量进行详细介绍。VCL内置函数(1)vcl_recv函数用于接收和处理请求,当请求到达并成功接收后被调用,通过判断请求的数据来决定如何处理请求。此函数一般以如下几个关键字结束:q pass:表示进入pass模式,把请求控制权交给vcl_pass函数。q pipe:表示进入pipe模式,把请求控制权交给vcl_pipe函数。q errorcode[reason]:表示返回“code”给客户端,并放弃处理该请求,“code”

3、是错误标识,例如200、405等,“reason”是错误提示信息。(2)vcl_pipe函数此函数在进入pipe模式时被调用,用于将请求直接传递至后端主机,在请求和返回的内容没有改变的情况下,将不变的内容返回给客户端,直到这个链接关闭。此函数一般以如下几个关键字结束:q errorcode[reason] q pipe(3)vcl_pass函数此函数在进入pass模式时被调用,用于将请求直接传递至后端主机,后端主机应答数据后送给客户端,但不进行任何缓存,在当前连接下每次都返回最新的内容。此函数一般以如下几个关键字结束:q errorcode[reason] q pas

4、s(4)lookup表示在缓存里查找被请求的对象,并且根据查找的结果把控制权交给函数vcl_hit或者函数vcl_miss。(5)vcl_hit函数在执行lookup指令后,如果在缓存中找到请求的内容,将自动调用该函数。此函数一般以如下几个关键字结束:q deliver:表示将找到的内容发送给客户端,并把控制权交给函数vcl_deliver。q errorcode[reason] q pass(6)vcl_miss函数在执行lookup指令后,如果没有在缓存中找到请求的内容时自动调用该方法,此函数可以用于判断是否需要从后端服务器取内容。此函数一般以如下几个关键字结束:

5、q fetch:表示从后端获取请求的内容,并把控制权交给vcl_fetch函数。q errorcode[reason] q pass(7)vcl_fetch函数在从后端主机更新缓存并且获取内容后调用该方法,接着,通过判断获取的内容来决定是否将内容放入缓存,还是直接返回给客户端。此函数一般以如下几个关键字结束:q errorcode[reason]q passq deliver(8)vcl_deliver函数在缓存中找到请求的内容后,发送给客户端前调用此方法。此函数一般以如下几个关键字结束:q errorcode[reason] q deliver(9)vcl_time

6、out函数此函数在缓存内容到期前调用。一般以如下几个关键字结束:q discard:表示从缓存中清除该内容。q fetch(10)vcl_discard函数在缓存内容到期后或缓存空间不够时,自动调用该方法,一般以如下几个关键字结束:q keep:表示将内容继续保留在缓存中。q discard 2、VCL处理流程图 通过上面对VCL函数的介绍,读者对各个函数实现的功能已经有了一个了解,其实每个函数之间都是相互关联的,下图列出了varnish处理HTTP请求的一个运行流程图。处理过程大致分为如下几个步骤:(1) Receive状态,也就是请求处理的入口状态,根据VCL规则

7、判断该请求应该是Pass或Pipe,或者进入Lookup(本地查询)。(2) Lookup状态,进入此状态后,会在hash表中查找数据,若找到,则进入Hit状态,否则进入miss状态。(3) Pass状态,在此状态下,会进入后端请求,即进入fetch状态。 (4) Fetch状态,在Fetch状态下,对请求进行后端的获取,发送请求,获得数据,并进行本地的存储。(5) Deliver状态,将获取到的数据发送给客户端,然后完成本次请求。3、内置公用变量 VCL内置的公用变量可以用在不同的VCL函数中,根据这些公用变量使用的不同阶段,下面依次介绍。当请求到

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。