前言:
在不同地域的用户访问网站的相应速度存在差异,为了提高用户访问的相应
速度,优化现有internet中的信息流动,需要在用户和服务器之间加入中间层CDN,
是用户能以最快的速度从最近的地方获得所需的信息,加速解决网络的拥塞,提高
响应的速度,是目前大型互联网站使用的流行应用方案。
使用·Vanish实现CDA的节点集群
vanish的工作原理如下:
Varnish处理请求流程大致可以分为如下几个步骤:
1、首先当请求到达时,接受vcl_recv函数的检查,在这个函数中,可以执
行pass、pipe、lookup、error操作。
2、如果在vcl_recv函数执行lookup操作,则会在缓存中查看是否有该缓存对象。
如果有,则表示缓存命中,则在接受vcl_hit函数的检 查。在该函数下可以将缓
存对象直接返回给客户端,即执行deliver操作。也可以不使用本地缓存对象,
从后端服务器获取请求对象,即执行pass操作。 如果本地没有该缓存对象,则表
示缓存丢失,则会接受vcl_miss函数检查。该函数会从后端服务器获取最新资源,
即将会执行pass或fetch操作。
3、如果在vcl_recv函数执行pass操作,则表示不再本地缓存查找,直接从后端服务器
进行获取,即将会接受vcl_pass函数的检查。
4、如果在vcl_recv函数处执行pipe操作,则表示不再本地缓存中查找,并且客户端和
后端服务器建立管道,后续客户端的keep-alive连 接中的请求数据传输将在管道中进行,
并且请求数据接受vcl_pipe函数的检查。直到数据传输完成时关闭该管道连接。
5、当需要从后端服务器获取资源或数据时,需要调用vcl_fetch函数,并且根据某种条
件判断该数据或资源是否缓存在本地,即执行deliver操 作;或者直接将该资源返回给客
户端,不缓存在本地,即执行hit_for_pass操作 最后,不管是从本地缓存中响应的数据
还是从后端原始服务器获取到的数据返回给客户端都需要调用vcl_deliver函数来完成。
正文:
这里我们使用一台物理机和三台虚拟机进行实验
主机:172.25.68.250
server1:172.25.68.1 (使用varnish工具实现CDN的节点集群)
server2 172.25.68.2 (充当后台的服务器)
server3 172.25.68.3 (充当后台的服务器)
在varnish的缓存原理简单分为以下两种:
当varnish上灭有用户想要请求数据的缓存时
--------------------------------------------------------
Client -> dns -> cdn -> server -> cdn -> cache -> Client<