CDN的cache节点(http)结构及工作原理总结(图自画)
2016-03-16 18:13
573 查看
无数的cache节点再加上调度就是一个cdn,当然这玩意如果放在运营商里面就是个cache,一来可以帮运营商节省流量,节省其到别的运营商的回源带宽,二来提高用户的用户体验,让用户访问速度更快,结构图如下:
整个用户访问过程总结如下:
用户访问,先进行域名解析。我们通过运营商处的LDNS(local dns),将要缓存的域名forword到我方DNS设备上,然后根据我方DNS上的策略设置,将要缓存的域名通过轮训、哈希或指定分组的方式解析成不同的反向代理服务器地址,将解析结果返回给客户端浏览器,浏览器再通过解析到的IP去进行资源访问。
主要有三个模块
引导模块:在运营商的DNS(也是网民使用的DNS)上,将要缓存的域名forword到我方DNS上,进行域名引导,我方DNS会通过心跳检测后端反向代理的存活情况,使用哈希、轮序或分组进行域名解析分配,当某台负载设备心跳断掉后,就不会分配请求过去了,直接回源或者转到兄弟设备上服务,不会影响用户服务。
负载模块:对我方DNS分发过来的请求进行负载,通过url哈希(避免资源重复存储),分配给下级的缓存代理服务器,通过心跳检查后端缓存代理服务器是否存活,如果后端死掉,将直接代理回源或分配给兄弟缓存代理服务器,不会影响用户服务;
缓存代理服务器:对负载服务器分发过来的请求进行处理,服务器上挂载了磁盘进行数据存储,请求过来后先查看本地磁盘是否存储了这个资源,如果存储了直接从磁盘读取后吐给前段的负载服务器,如果没有这个资源,就通过本机安装的bind去根域进行解析,然后进行回源,回源后将资源吐给前端负载,如果符合缓存规则,同时会在本地存储一份,前端负载将资源吐给客户端浏览器。
本文出自 “奔跑的linux” 博客,请务必保留此出处http://benpaozhe.blog.51cto.com/10239098/1751875
整个用户访问过程总结如下:
用户访问,先进行域名解析。我们通过运营商处的LDNS(local dns),将要缓存的域名forword到我方DNS设备上,然后根据我方DNS上的策略设置,将要缓存的域名通过轮训、哈希或指定分组的方式解析成不同的反向代理服务器地址,将解析结果返回给客户端浏览器,浏览器再通过解析到的IP去进行资源访问。
主要有三个模块
引导模块:在运营商的DNS(也是网民使用的DNS)上,将要缓存的域名forword到我方DNS上,进行域名引导,我方DNS会通过心跳检测后端反向代理的存活情况,使用哈希、轮序或分组进行域名解析分配,当某台负载设备心跳断掉后,就不会分配请求过去了,直接回源或者转到兄弟设备上服务,不会影响用户服务。
负载模块:对我方DNS分发过来的请求进行负载,通过url哈希(避免资源重复存储),分配给下级的缓存代理服务器,通过心跳检查后端缓存代理服务器是否存活,如果后端死掉,将直接代理回源或分配给兄弟缓存代理服务器,不会影响用户服务;
缓存代理服务器:对负载服务器分发过来的请求进行处理,服务器上挂载了磁盘进行数据存储,请求过来后先查看本地磁盘是否存储了这个资源,如果存储了直接从磁盘读取后吐给前段的负载服务器,如果没有这个资源,就通过本机安装的bind去根域进行解析,然后进行回源,回源后将资源吐给前端负载,如果符合缓存规则,同时会在本地存储一份,前端负载将资源吐给客户端浏览器。
本文出自 “奔跑的linux” 博客,请务必保留此出处http://benpaozhe.blog.51cto.com/10239098/1751875
相关文章推荐
- ifconfig命令--查看、配置、启用或禁用网络接口的工具
- 网络请求的synchttpclient的优点
- iOS9网络请求失败
- [caffe]深度学习之MSRA图像分类模型Deep Residual Network(深度残差网络)解读
- linux tcp网站
- TCP之心跳包实现思路
- Android http连接方式选择,从Volley窥探Google处理方式
- TCP/IP 协议简单分析
- MyTCP<二>
- 网络游戏专业术语中英文对照版
- Java简单的网络爬虫实现
- python网络编程
- [网络流24题]code vs 1914 运输问题
- JAVA利用HttpClient进行POST和GET请求(HTTPS)
- jarsigner: 无法对 jar 进行签名: 时间戳颁发机构没有响应。 如果要从防火墙后面连接, 则可能需要指定 HTTP 代理。请为 jarsigner 提供以下选项
- 使用“带外数据”实现TCP心跳包
- Tomcat 启用 HTTPS
- 获取网络图片宽高
- BZOJ3931 网络吞吐量(最大流)
- TCP通信中的粘包问题