安装
安装pcre
如果没有安装pcre,在编译varnish 2.0以上版本时,会提示找不到pcre库,而pcre库是为了兼容正则表达式,所以必须先安装pcre库。下面是pcre的安装过程:
[[email protected] ~]# tar -zxvf pcre-7.9.tar.gz [[email protected] ~]# cd pcre-7.9/ [[email protected] ~]# ./config --prefix=/usr/local/pcre/ [[email protected] ~]# make && make install
安装Varnish
这里将Varnish安装到/usr/local/目录下,操作如下:
[[email protected] ~]# tar -zxvf varnish-2.1.2.tar.gz [[email protected] ~]# cd varnish-2.1.2 [[email protected] ~]# export PKG_CONFIG_PATH=/usr/local/pcre/lib/pkgconfig [[email protected] ~]# ./configuer --prefix=/usr/local/varnish >--enable-dependency-tracking >--enable-debugging-symbols >--enable-developer-warnings [[email protected] ~]# make [[email protected] ~]# make install [[email protected] ~]# cp redhat/varnish.initrc /etc/init.d/varnish [[email protected] ~]# cp redhat/varnish.sysconfig /etc/syscinfug/varnish
其中,“PKG_CONFIG_PATH”是指定Varnish查找pcre库的路径,至此,Varnish安装完毕。
配置
由于篇幅限制,在这儿是介绍VCL内置函数的意义,请大家见谅!
vcl_recv函数
用于接受和处理请求。当请求达到并被成功接收后被调用,通过判断请求的数据来决定如何处理请求。
此函数一般以如下几个关键字结束:
>pass:表示进入pass模式,把请求控制权交给vcl_pass函数。 >pipe:表示进入pipe模式,请把请求控制权交给vcl_pipe函数。 >error code [reason]:表示返回“code”给客户端,并放弃处理该请求。
vcl_pipe函数
此函数在进入pipe模式时被调用,用于将请求直接传递至后端主机,在请求和返回的内容没有改变的情况下,将不变的内容返回给客户端,直到这个连接被关闭。
此函数一般以如下几个关键字结束:
>pipe:表示进入pipe模式,请把请求控制权交给vcl_pipe函数。 >error code [reason]:表示返回“code”给客户端,并放弃处理该请求。
vcl_pass函数
此函数在进入pass模式时被调用,用于将请求直接传递至后端主机。后端主机在应答数据后将应答数据发送给客户端,但不进行任何缓存,在当前连接下每次都返回最新的内容。
此函数一般以如下几个关键字结束:
>pass。 >error code [reason]:表示返回“code”给客户端,并放弃处理该请求。
lookup
表示在缓存中查找被请求的对象,并且根据查找的结果把控制权交给vcl_hit或者函数vcl_miss。
vcl_hit函数
在执行lookup指令后,在缓存中找到请求的内容后将自动调用该函数。
此函数一般以如下几个关键字结束:
>pass:表示进入pass模式,把请求控制权交给vcl_pass函数。 >deliver:表示将找到的内容发送给客户端,并把控制权交给vcl_deliver。 >error code [reason]:表示返回“code”给客户端,并放弃处理该请求。
vcl_miss函数
在执行lookup指令后,在缓存中没有找到请求的内容时自动调用该方法。此函数可用于判断是否需要从后端服务器获取内容。
此函数一般以如下几个关键字结束:
>pass。 >fetch:表示从后端获取请求的内容,并且把控制权交给vcl_fetch。 >error code [reason]:表示返回“code”给客户端,并放弃处理该请求。
vcl_fetch函数
在后端主机更新缓存并且获取内容后调用该方法,接着,通过判断获取的内容来决定是将内容放入缓存,还是直接返回给客户端。
此函数一般以如下几个关键字结束:
>pass。 >deliver:表示将找到的内容发送给客户端,并把控制权交给vcl_deliver。 >error code [reason]:表示返回“code”给客户端,并放弃处理该请求。
vcl_deliver函数
将在缓存中找到请求的内容发送给客户端前调用该方法。
此函数一般以如下几个关键字结束:
>deliver:表示将找到的内容发送给客户端,并把控制权交给vcl_deliver。 >error code [reason]:表示返回“code”给客户端,并放弃处理该请求。
vcl_timeout函数
在缓存内容到期前调用该函数。
此函数一般以如下几个关键字结束:
>descard:表示从缓存中清楚该内容。 >fetch
vcl_discard函数
在缓存内容到期后或缓存空间不足时,自动调用该函数。
此函数一般以如下几个关键字结束:
>descard >keep:表示将内容继续保留在缓存中。
免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:http://www.linuxprobe.com/