简单了解varnish的原理:
框架图
Varnish是一款高性能、开源的反向代理服务器和缓存服务器。Varnish使用内存缓 存文件来减少响应时间和网络带宽消耗。这个项目是由挪威的一家报纸Verdens Gang的网络分支起始的,其架构设计和开发总监Poul-Henning Kamp是FreeBSD核心的开发人员之一,最初项目的管理与基础设施及额外开发由挪威一家Linux咨询公司Linpro提供。
说到varnish,squid就不得不提及。squid算得上是古老的缓存服务器。由于 varnish先进的设计理念,性能要比squid高上许多,varnish还可以通过端口进行管理,使用正则语句做到清除指定缓存的功能,这些 squid都做不到。但是varnish在高并发的情况下,资源消耗较高,而且varnish服务进程一旦崩溃,重启,内存中的缓存数据将全部丢失。
varnish是基于现代设备设计的服务项目,所以仅支持64位系统。Manager Process 负责处理请求任务,保证每个任务分配一个worker threads。所以varnish是一个重线程型服务。除此之外,manager process 包含接受CLI命令控制的功能,包括调整运行参数,vcl配置更新。初始化子进程Cacher Process,并按一定频率检测cacher在线与否。
一: 在拍照出来的虚拟机server1中,执行命令yum install 相关的varnish软件,如图:
之后执行如图所示的命令
编写varnish这个配置文件,修改内容如下:
执行下图命令
编写vim default.vcl 文件内容如下图:
最后执行命令/etc/init.d/varnish start 启动varnish
成功后如图:
在 安装的虚拟机server2中,安装yum install httpd -y 并且执行命令/etc/init.d/httpd start 启动这个服务
并且执行下图所表示的命令,编写index.html 内容如下:
测试:
在真机的网页上进行测试,效果如图:(ip不用进行解析即可测试)
二. 在虚拟机server1上修改default.vcl文件,如图:
我们可以为了方便看到缓存的影响:可以执行下命令来看
在真机上执行命令为 curl -I 172.25.254.1
如果有缓存,则会直接访问缓存,显示“HIT from westos cache”,如果没有缓存,则会去访问172.25.254.2,显示“MISS from westos cache”
在虚拟机server1上:
编写vim /etc/sysconfig/varnish
编写 vim /etc/security/limits.cof 配置文件,效果如下:
我们在虚拟机server3上安装httpd软件,并且开启服务:编写index.html内容如下:
之后mkdir /www/
编写文件 vim /www/index.html
再编辑server1上的varnish的配置文件如图
在真实主机上编辑解析文件:vim /etc/hosts
测试:
注意:用命令 varnishadm ban.url /index.html可以清除server1上之前的有关缓存
在网页上 搜索不同的域名,会显示不同效果
或者在主机上执行 curl www.westos.org 或者curl bbs.westos.org都可以出现相应的效果
三. 在虚拟机server3上,编写vim /etc/httpd/conf/httpd.conf
如图:
在server3上解析 vim /etc/hosts
在主机上执行下图可以看到两种形式的分别进行:
四. cdn 推送
首先在虚拟机server1上 解压下载的包 ,下载php服务 统一放到html 下
之后作如下操作:
编写php文件
内容如下:
最后在虚拟机server1上 修改httpd的端口为8080 Listen=8080 (防止与varnish冲突)
测试:
没推送之前
开始推送
则表示推送成功
最后在看效果,发现已经推送成功,如下图所表示: