博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux的企业-Varnish
阅读量:5739 次
发布时间:2019-06-18

本文共 1792 字,大约阅读时间需要 5 分钟。

一.Varnish概念

Varnish是一个轻量级的Cache和反向代理软件,先进的设计理念和成熟的设计框架是Varnish的主要特点,现在的Varnish总共代码量不大,功能上虽然在不断改进,但是还需要继续丰富和加强。下面总结了Varnish的一些特点:
1)是基于内存缓存,重启后数据将消失。
2)利用虚拟内存方式,io性能好。
3)支持设置0~60秒内的精确缓存时间。
4VCL配置管理比较灵活。
532位机器上缓存文件大小为最大2G
6)具有强大的管理功能,例如topstatadminlist等。
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,如需转载请自行联系原作者

你可能感兴趣的文章
“亲切照料”下的领域驱动设计
查看>>
SRE工程师到底是做什么的?
查看>>
解读:Red Hat为什么收购Ansible
查看>>
PHP json_encode() 函数介绍
查看>>
js动态设置元素高度
查看>>
Ossim下的安全合规管理
查看>>
DelphiWebMVC框架下BPL热部署实现
查看>>
C++与MySQL的冲突
查看>>
siki学习之观察者模式笔记
查看>>
单元测试
查看>>
spring.net 继承
查看>>
ES6:模块简单解释
查看>>
JavaScript indexOf() 方法
查看>>
用Bootstrap写一份简历
查看>>
ZJU PAT 1023
查看>>
WMI远程访问问题解决方法
查看>>
从零开始学习IOS,(UILabel控件)详细使用和特殊效果
查看>>
Android开发历程_15(AppWidget的使用)
查看>>
阿花宝宝 Java 笔记 之 初识java
查看>>
7、设计模式-创建型模式-建造者模式
查看>>