首页 > 代码库 > Varnish

Varnish

Varnish

一.准备环境

三台6.5企业版虚拟机

同网段IP

防火墙与selinux关闭(永久关闭防火墙,注意6.5与7的对于服务操作启动的区别)

技术分享

再有一台真机可以做测试

主机环境:172.25.47.250

技术分享

实验主机:

172.25.47.1   varnish

技术分享

172.25.47.2   apache

技术分享

172.25.47.3  apache

技术分享

二.Varnish 原理

技术分享

技术分享

处理过程大致分为如下几个步骤:

(1)Receive 状态,也就是请求处理的入口状态,根据 VCL 规则判断该请求应该是 Pass 或

Pipe,或者进入 Lookup(本地查询)。

(2)Lookup 状态,进入此状态后,会在 hash 表中查找数据,若找到,则进入 Hit 状态,否则进

入 miss 状态。

(3)Pass 状态,在此状态下,会进入后端请求,即进入 fetch 状态。

(4)Fetch 状态,在 Fetch 状态下,对请求进行后端的获取,发送请求,获得数据,并进行本地

的存储。

(5)Deliver 状态, 将获取到的数据发送给客户端,然后完成本次请求。

三.Varnish 操作

1.安装

Yum 仓库的配置以及镜像的挂载

http://repo.varnish-cache.org/redhat/varnish-3.0/el6/x86_64/

yum localinstall -y varnish-3.0.3-1.el6.x86_64.rpm varnish-libs-3.0.3-1.el6.x86_64.rpm

2.配置文件

针对varnish:

Vim  /etc/varnish/default.vcl

#####配置一个后端服务器

技术分享

#####配置varnish服务端口

vim /etc/sysconfig/varnish

技术分享

打开该服务,查看端口状态

/etc/init.d/varnish start

netstat -antlp

#####向配置文件中添加判断缓存命中的情况

sub vcl_deliver {

if (obj.hits > 0) {

set resp.http.X-Cache = "HIT from westos cache";

}

else {

set resp.http.X-Cache = "MISS from westos cache";

}

return (deliver);

}

技术分享

#####重新加载该服务

/etc/init.d/varnish reload

针对172.25.47.2:

安装apache服务,并打开服务

在默认发布目录中写个文件

技术分享

针对测试机 172.25.47.250:

#####测试缓存命中

技术分享

#####未命中

技术分享

######命中

Varnish