Linux的企业-Varnish

  1. 云栖社区>
  2. 博客>
  3. 正文

Linux的企业-Varnish

技术小胖子 2017-11-15 14:36:00 浏览814
展开阅读全文



一.Varnish概念

Varnish是一个轻量级的Cache和反向代理软件,先进的设计理念和成熟的设计框架是Varnish的主要特点,现在的Varnish总共代码量不大,功能上虽然在不断改进,但是还需要继续丰富和加强。下面总结了Varnish的一些特点:
1)是基于内存缓存,重启后数据将消失。
2)利用虚拟内存方式,io性能好。
3)支持设置0~60秒内的精确缓存时间。
4VCL配置管理比较灵活。
532位机器上缓存文件大小为最大2G
6)具有强大的管理功能,例如topstatadminlist等。
7)状态机设计巧妙,结构清晰。
8)利用二叉堆管理缓存文件,达到积极删除目的。


二.处理流程

wKioL1m6bSbgnzS0AAJsFm9ZhXY716.png

处理过程大致分为如下几个步骤:
(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包

wKiom1m6bj6wD1ZNAAAksvleUGE268.png


3.配置varnish服务

varnish服务端口为80,但要注意http端口80,不要开启httpd服务否则有矛盾

wKiom1m6bj6BSt2kAAA50o0pMnw686.png


4.配置后端服务器web1

wKioL1m6bhOS0nOrAAAY9q5T9fE937.png

wKiom1m6bj6CG_HJAAAcCpK0D6I872.png

wKioL1m6bhSTOz9eAAAmwdpiugA152.png


5.配置server2  www.westos.org-server2

wKiom1m6bj_A4E8YAABV0B2rLbI487.png


6.客户机测试:

wKioL1m6bhSiNz-BAAAjJotwKSk303.png

四.查看缓存命中情况

1.添加命中配置文件

server1:vim /etc/varnish/default.vcl

wKiom1m6bkCxMtYzAABCk8HqGAc554.png


客户机测试:

第一次未命中MISS

wKiom1m6bj_CQErgAACZHTWKQU8959.png

第二次命中HIT

wKioL1m6bhXzQzzkAACVaMqJDa0768.png


2.清除缓存

varnishadm ban.url .*$                 清除所有缓存    

varnishadm ban.url /index.html  清除index.html页面缓存    

varnishadm ban.url /admin/$      清除admin缓存   


wKiom1m6bj_AVwDjAAAZZ6z4d8c162.png


清除后Age为0

wKioL1m6bhXD3JYAAADcAFwhUHE937.png


五.定义多个不同域名站点的后端服务器


1.配置server1

vim /etc/varnish/default.vcl

wKioL1m6bhXhVSRwAAAr8KZ8AZY238.png

wKioL1m6bhbSzfeBAABbLtDmMnU142.png

wKiom1m6bkGhSbV8AAAzuojoTCU231.png

2.配置server3的http服务

wKiom1m6bkGA1Y3wAABWnOfUEks590.png



3.客户机测试

wKioL1m6bhai0jyoAAAl_gvbg4M698.png

wKiom1m6bkHyEkWEAAAkiSEBhgA845.png

六.负载均衡


1.配置server1

vim /etc/varnish/default.vcl


director lb round-robin      将多个后端聚合为一个组lb进行轮询

set req.backend = lb         当访问www.westos.org时访问lb组
return (pass)                     为了测试方便,不进行缓存


wKiom1m6bkKxHYkaAAB6J5cqmhI365.png


2.客户机测试:server2与server3轮询

wKioL1m6bhfAxkPHAACGbS9Zz9s042.png


七.varnish CDN 推送

1.解压bansys.zip((yum install unzip -y)

wKioL1m6bheQQgvEAAA6nTjj1OU388.png


2.安装php

wKiom1m6bkLCfD_sAAA1dlaF5U4220.png


3.在server1上安装httpd,设置访问端口为8080

wKiom1m6bkKzH0n6AAAUeqcHaAo169.png


4.配置php文件  vim /var/www/html/config.php

wKiom1m6bkPSRcTaAACGF1gA4Dc692.png



5.配置server1文件

#bansys 有两种工作模式,分别是:telnet 和 http 模式。
#telnet 模式需要关闭 varnish 服务管理端口的验证,注释掉/etc/sysconfig/varnish 文件中的 “ -S ${VARNISH_SECRET_FILE}”这行,重启 varnish 服务即可。


#如果是 http 模式需要对 varnish 做以下设置:

acl westos                                 设置访问控制

wKioL1m6bhiTPu1JAAATOzsu2iM996.png

wKioL1m6bhjghn4NAACV4b4lk3g990.png

6.重新加载

wKiom1m6bkPhDnQgAABvySa4L3g663.png


7.客户机测试

wKioL1m6bhny8HotAAAtJh8CxV8043.png


wKioL1m6bhjxV89tAAA46D4n6Kw123.png



      本文转自一百个小排 51CTO博客,原文链接:http://blog.51cto.com/anfishr/1965124,如需转载请自行联系原作者







网友评论

登录后评论
0/500
评论
技术小胖子
+ 关注