varnish

一、关于Varnish

1、varnish系统架构

varnish主要运行两个进程:Management进程和Child进程(也叫Cache进程)。

Management进程主要实现应用新的配置、编译VCL、监控varnish、初始化varnish以及提供一个命令行接口等。Management进程会每隔几秒钟探测一下Child进程以判断其是否正常运行,如果在指定的时长内未得到Child进程的回应,Management将会重启此Child进程。

Child进程包含多种类型的线程,常见的如:
Acceptor线程:接收新的连接请求并响应;
Worker线程:child进程会为每个会话启动一个worker线程,因此,在高并发的场景中可能会出现数百个worker线程甚至更多;
Expiry线程:从缓存中清理过期内容;

Varnish依赖“工作区(workspace)”以降低线程在申请或修改内存时出现竞争的可能性。在varnish内部有多种不同的工作区,其中最关键的当属用于管理会话数据的session工作区。

2.Varnish 是什么
Varnish是高性能开源的反向代理服务器和HTTP缓存服务器
Varnish的功能与Squid服务器相似,都可以用来做HTTP缓存

Squid是从硬盘读取缓存的数据,而Varnish把数据存放在内存中,直接从读取内存,避免了频繁在内存、磁盘中交换文件,所以Varnish要相对更高效,但也有缺点,内存中的缓存在服务器重启后会丢失

3,Varnish 如何工作
初始化过程
Varnish 的master进程负责启动工作,master进程读取配置文件,根据指定的空间大小(例如管理员分配了2G内存)来创建存储空间,创建并管理child进程
child进程来处理后续任务,它会分配一些线程来执行不同的工作,例如
接受http请求
为缓存对象分配存储空间
清除过期缓存对象
释放空间 碎片整理
4,http请求处理过程
有一个专门负责接收http请求的线程,一直监听请求端口,当有请求过来时,负责唤起一个工作线程来处理请求
工作线程会分析http请求的uri,知道了这个请求想要什么,就到缓存中查找是否有这个对象
如果有,就把缓存对象直接返回给用户
如果没有,会把请求转给后端服务器处理,并等待结果,工作线程从后端得到结果内容后,先把内容作为一个缓存对象保存到缓存空间(以备下次请求这个对象时快速响应),然后再把内容返回给用户

5,分配缓存过程

有一个对象需要缓存时,根据这个对象的大小,到空闲缓存区中查找大小最适合的空闲块,找到后就把这个对象放进去
如果这个对象没有填满这个空闲块,就把剩余的空间做为一个新的空闲块
如果空闲缓存区中没地方了,就要先删除一部分缓存来腾出地方,删除是根据最近最少使用原则

6,释放缓存过程
有一个线程来负责缓存的释放工作,他定期检查缓存中所有对象的生存周期,如果某个对象在指定的时间段内没有被访问,就把这个对象删除,释放其占用的缓存空间
释放空间后,检查一下临近的内存空间是否是空闲的,如果是,就整合为一个更大的空闲块,实现空间碎片的整理

二:配置环境
先建立母板,通过快照出虚拟机
前提,配置好版本相关的版本yum源,本机用的是:rhel-server-6.5-x86_64-dvd.iso
在真机挂载到/var/www/html/rhel6.5
cd /etc/sysconfig/network-scripts/
ifcfg-br0 让br0拥有两个网关
172.25.254.66
172.25.66.250
在这里插入图片描述
建立母板:

在这里插入图片描述
选择文件,(和yum源的地址相同)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
先修改母板yum源
在这里插入图片描述
下载相应的服务
在这里插入图片描述
修改selinux=disable,关闭iptables
在这里插入图片描述
vim /etc/hosts
在这里插入图片描述
在这里插入图片描述
然后poweoff关闭母板即可
创建快照linux1~4
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
命名快照虚拟机
在这里插入图片描述
修改ip和主机名

在这里插入图片描述
在这里插入图片描述
三:安装varnish
http ?/ repo . varnish - cache . org / redhat / varnish -3.0/ el 6/ x 86_64/
yum install varnish-3.0.5-1.el6.x86_64.rpm varnish-libs-3.0.5-1.el6.x86_64.rpm -y

在这里插入图片描述
修改三个文件的内容
在这里插入图片描述
配置 varnish 服务端口
在这里插入图片描述
在这里插入图片描述
配置一个后端服务器
在这里插入图片描述
在linux2上下载httpd服务,并建立一个发布目录
在这里插入图片描述
测试:这样就可以通过访问linux1的ip可以看到linux2的发布目录内容了
在这里插入图片描述
查看缓存命中情况
在这里插入图片描述
在这里插入图片描述
测试:HIT#命中 MISS #未命中
在这里插入图片描述
通过 varnishadm 手动清除缓存
varnishadm ban.url .*$
#清除所有
varnishadm ban.url /index.html
#清除 index.html 页面缓存
varnishadm ban.url /admin/$
#清除 admin 目录缓存
在这里插入图片描述
因为清除的所有的缓存,为空,要去后端服务器拿,所以未命中
在这里插入图片描述
当拿过一次之后有了缓存,直接命中
在这里插入图片描述
定义多个不同域名站点的后端服务器
搭建环境,在linux3上下载http服务
在这里插入图片描述
创建linux3上的发布目录内容,启动httpd服务
在这里插入图片描述
vim /etc/varnish/default.vcl
/etc/init.d/varnish reload
当访问 www.westos.org 域名时从 web1 上取数据,访问 bbs.westos.org 域名时到 web2 取数据,
访问其他页面报错

在这里插入图片描述
在这里插入图片描述
测试:
在这里插入图片描述
在这里插入图片描述
定义负载均衡
vim /etc/httpd/conf/httpd.conf
/etc/init.d/httpd restart
在这里插入图片描述
在这里插入图片描述
director lb round-robin {
{.backend = web1;}
{.backend = web2;}}
#把多个后端聚合为一个组,并检测后端健康状况
}
return (pass);
#为了测试方便,不进行缓存
return (pass); 作用相当于一个负载均衡器。
注释:加上 pass 时相当于一个负载均衡器,不进行缓存,两个服务器交换使用
当访问www的时候在web1和web2之间进行轮询
vim /etc/varnish/default.vcl
/etc/init.d/varnish reload
在这里插入图片描述
测试:

在这里插入图片描述
varnish cdn 推送平台
需要安装 php 支持
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
vim /etc/httpd/conf/httpd.conf
/etc/init.d/httpd restart
在这里插入图片描述
.*$
#清除所有
/index.html
#清除 index.html 页面缓存
/admin/$
#清除 admin 目录缓存
在这里插入图片描述
在这里插入图片描述
#bansys 有两种工作模式,分别是:telnet 和 http 模式。
#telnet 模式需要关闭 varnish 服务管理端口的验证,注释掉/etc/sysconfig/varnish 文件中的 “ -S $
{VARNISH_SECRET_FILE}”这行,重启 varnish 服务即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值