本文共 1792 字,大约阅读时间需要 5 分钟。
一.Varnish概念
Varnish是一个轻量级的Cache和反向代理软件,先进的设计理念和成熟的设计框架是Varnish的主要特点,现在的Varnish总共代码量不大,功能上虽然在不断改进,但是还需要继续丰富和加强。下面总结了Varnish的一些特点:
(1)是基于内存缓存,重启后数据将消失。
(2)利用虚拟内存方式,io性能好。
(3)支持设置0~60秒内的精确缓存时间。
(4)VCL配置管理比较灵活。
(5)32位机器上缓存文件大小为最大2G。
(6)具有强大的管理功能,例如top,stat,admin,list等。
(7)状态机设计巧妙,结构清晰。
(8)利用二叉堆管理缓存文件,达到积极删除目的。
二.处理流程
处理过程大致分为如下几个步骤:
(1)Receive 状态,也就是请求处理的入口状态,根据 VCL 规则判断该请求应该是 Pass 或 Pipe,或者进入 Lookup(本地查询)。 (2)Lookup 状态,进入此状态后,会在 hash 表中查找数据,若找到,则进入 Hit 状态,否则进 入 miss 状态。 (3)Pass 状态,在此状态下,会进入后端请求,即进入 fetch 状态。 (4)Fetch 状态,在 Fetch 状态下,对请求进行后端的获取,发送请求,获得数据,并进行本地 的存储。 (5)Deliver 状态, 将获取到的数据发送给客户端,然后完成本次请求。三.安装
1.配置环境客户机:172.25.29.250
varnish服务器:172.25.29.1
http服务器www.westos.org-server2:172.25.29.2
http服务器bbs.westos.org:172.25.29.3
2.安装varnish包
3.配置varnish服务
varnish服务端口为80,但要注意http端口80,不要开启httpd服务否则有矛盾
4.配置后端服务器web1
5.配置server2 www.westos.org-server2
6.客户机测试:
四.查看缓存命中情况
1.添加命中配置文件
server1:vim /etc/varnish/default.vcl
客户机测试:
第一次未命中MISS
第二次命中HIT
2.清除缓存
varnishadm ban.url .*$ 清除所有缓存
varnishadm ban.url /index.html 清除index.html页面缓存 varnishadm ban.url /admin/$ 清除admin缓存清除后Age为0
五.定义多个不同域名站点的后端服务器
1.配置server1
vim /etc/varnish/default.vcl
2.配置server3的http服务
3.客户机测试
六.负载均衡
1.配置server1
vim /etc/varnish/default.vcl
director lb round-robin 将多个后端聚合为一个组lb进行轮询set req.backend = lb 当访问www.westos.org时访问lb组
return (pass) 为了测试方便,不进行缓存2.客户机测试:server2与server3轮询
七.varnish CDN 推送
1.解压bansys.zip((yum install unzip -y)
2.安装php
3.在server1上安装httpd,设置访问端口为8080
4.配置php文件 vim /var/www/html/config.php
5.配置server1文件
#bansys 有两种工作模式,分别是:telnet 和 http 模式。
#telnet 模式需要关闭 varnish 服务管理端口的验证,注释掉/etc/sysconfig/varnish 文件中的 “ -S ${VARNISH_SECRET_FILE}”这行,重启 varnish 服务即可。#如果是 http 模式需要对 varnish 做以下设置:
acl westos 设置访问控制
6.重新加载
7.客户机测试
本文转自一百个小排 51CTO博客,原文链接:http://blog.51cto.com/anfishr/1965124,如需转载请自行联系原作者