首页 > 代码库 > 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