Linux的企业-Varnish

简介:



一.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,如需转载请自行联系原作者







相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
Web App开发 JavaScript 前端开发
《高性能Linux服务器构建实战》——2.7节Varnish的常见应用实例
本节书摘来自华章社区《高性能Linux服务器构建实战》一书中的第2章,第2.7节Varnish的常见应用实例,作者:高俊峰,更多章节内容可以访问云栖社区“华章社区”公众号查看
1204 0
|
缓存 JavaScript 网络协议
《高性能Linux服务器构建实战》——2.6节Varnish优化
本节书摘来自华章社区《高性能Linux服务器构建实战》一书中的第2章,第2.6节Varnish优化,作者:高俊峰,更多章节内容可以访问云栖社区“华章社区”公众号查看
1229 0
|
Web App开发 缓存 JavaScript
《高性能Linux服务器构建实战》——2.5节管理Varnish
本节书摘来自华章社区《高性能Linux服务器构建实战》一书中的第2章,第2.5节管理Varnish,作者:高俊峰,更多章节内容可以访问云栖社区“华章社区”公众号查看
1253 0
|
监控 JavaScript 前端开发
《高性能Linux服务器构建实战》——2.4节运行Varnish
本节书摘来自华章社区《高性能Linux服务器构建实战》一书中的第2章,第2.4节运行Varnish,作者:高俊峰,更多章节内容可以访问云栖社区“华章社区”公众号查看
1365 0
|
缓存 JavaScript 前端开发
《高性能Linux服务器构建实战》——2.3节配置Varnish
本节书摘来自华章社区《高性能Linux服务器构建实战》一书中的第2章,第2.3节配置Varnish,作者:高俊峰,更多章节内容可以访问云栖社区“华章社区”公众号查看
1279 0
|
JavaScript 前端开发 Linux
《高性能Linux服务器构建实战》——2.2节开始安装Varnish
本节书摘来自华章社区《高性能Linux服务器构建实战》一书中的第2章,第2.2节开始安装Varnish,作者:高俊峰,更多章节内容可以访问云栖社区“华章社区”公众号查看
1212 0
|
缓存 Linux
《高性能Linux服务器构建实战》——2.1节初识Varnish
本节书摘来自华章社区《高性能Linux服务器构建实战》一书中的第2章,第2.1节初识Varnish,作者:高俊峰,更多章节内容可以访问云栖社区“华章社区”公众号查看
1282 0