Vanish搭建CDN的节点集群

前言:

         在不同地域的用户访问网站的相应速度存在差异,为了提高用户访问的相应

速度,优化现有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<

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用字典的 `items()` 方法来遍历字典的键值对,然后按照需要的格式整理代码。以下是一个示例代码: ```python def format_dict_code(dictionary): code = "" for key, value in dictionary.items(): code += f"{key}: {value}, " code = "{" + code.rstrip(", ") + "}" return code total_obj_num_distance_dict_code = format_dict_code(total_obj_num_distance_dict) tolerance_num_point_code = format_dict_code(tolerance_num_point) tolerance_num_vanish_point_code = format_dict_code(tolerance_num_vanish_point) tolerance_num_via_box_code = format_dict_code(tolerance_num_via_box) tolerance_num_combine_code = format_dict_code(tolerance_num_combine) distance_error_sum_point_code = format_dict_code(distance_error_sum_point) distance_error_sum_vanish_point_code = format_dict_code(distance_error_sum_vanish_point) distance_error_sum_via_box_code = format_dict_code(distance_error_sum_via_box) distance_error_sum_combine_code = format_dict_code(distance_error_sum_combine) print(f"total_obj_num_distance_dict = {total_obj_num_distance_dict_code}") print(f"tolerance_num_point = {tolerance_num_point_code}") print(f"tolerance_num_vanish_point = {tolerance_num_vanish_point_code}") print(f"tolerance_num_via_box = {tolerance_num_via_box_code}") print(f"tolerance_num_combine = {tolerance_num_combine_code}") print(f"distance_error_sum_point = {distance_error_sum_point_code}") print(f"distance_error_sum_vanish_point = {distance_error_sum_vanish_point_code}") print(f"distance_error_sum_via_box = {distance_error_sum_via_box_code}") print(f"distance_error_sum_combine = {distance_error_sum_combine_code}") ``` 这段代码将会输出整理好的代码,你可以根据需要将其复制到你的程序中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值