Web Cache的实现
来源:互联网 发布:高中背英语单词软件 编辑:程序博客网 时间:2024/06/17 02:39
CDN将图片、视频和网页等内容存储到离用户最近的地方,实现为大量用户的就近服务,减少对源服务器和骨干网络的压力。负载均衡系统和内容管理系统都是为了更好的实现各个CDN节点协同工作。所以,CDN的本质上等于分层分布式集群Cache + 智能访问调度。根据缓存内容的不同,可以将Cache设备分为Web Cache和流媒体Cache。Web Cache服务器主要缓存静态网页等内容,也具备文件下载和流媒体服务的能力;而流媒体Cache服务器则对视频流媒体服务加速,功能相对单一。Web Cache可以在网络访问网络的多个节点实现:用户浏览器、用户端代理、服务端网关等节点。
一、正向代理
正向代理模式下,用户需要设置网络访问的代理服务器地址,代理服务器就可以作为Cache服务器。用户对网络的所有访问,都需要经过代理服务器代理完成。
- 用户的访问请求,先到达内网代理服务器。
- 代理服务器检查cache中是否缓存了用户的请求数据。如果有,则直接返回给用户。
- 如果没有缓存,则转发用户请求到源服务器。
- 源服务器响应代理服务器转发的用户请求,代理服务器则缓存响应数据,并将响应反馈给用户。
正向代理服务器在收到用户请求时,可以根据配置的策略,拦截过滤部分请求。因此正向代理可以实现访问控制和安全认证的功能。Cache设备作为出口网关提供代理服务,可以减少出口带宽。正向代理一般用户中小型企业用户。
二、反向代理
反向代理模式下,用户不需要作任何代理设置。Cache设备的IP地址,将会作为服务器域名的地址写入DNS记录,利用Cache设备的路由、交换能力完成代理访问。因此,反向代理可以对特定的内容进行加速。
- 用户的访问请求,经过DNS解析,直接到达外网代理服务器。
- 代理服务器检查cache中是否缓存了用户的请求数据。如果有,则直接返回给用户。
- 如果没有缓存,则转发用户请求到源服务器。
- 源服务器响应代理服务器转发的用户请求,代理服务器则缓存响应数据,并将响应反馈给用户。
反向代理用于服务器端,用户不需要作任何设置,完全感知不到Cache设备的存在。在反向代理模式下,如果Cache设备很多,网络规模很大时,需要部署GSLB(Global Server Load Balancing)来对全网Cache设备进行负载均衡,并对全网的内容分发策略进行设定,就形成了CDN网络的雏形。
三、透明代理
透明代理模式下,用户不需要作任何配置,也感知不到任何Cache设备的存在。可以使用支持WCCP(Web Cache Control Protocol)功能路由器或者利用4层交换机,把用户请求转发给Cache设备,由Cache对用户提供服务。这两种方式都可以支持负载均衡,可以对多台Cache按照一定规则分配流量。
- 用户发送访问请求。
- 请求被内网的透明代理截获。
- 透明代理检查cache中是否缓存了用户的请求数据。如果有,则直接返回给用户。
- 如果没有缓存,则转发用户请求到源服务器。
- 源服务器响应代理服务器转发的用户请求,代理服务器则缓存响应数据,并将响应反馈给用户。
透明代理可以截获用户请求,因此也可以像正向代理一样提供访问控制和安全认证的功能。透明代理模式下,Cache设备可以减少出口带宽,提高内网安全性。透明代理一般用户中小型企业用户。
- Web Cache的实现
- LRU cache的实现
- LRU Cache的实现
- LRU Cache的实现
- LRU Cache的实现
- Cache的设计和实现 LRU Cache
- Cache的设计和实现 LRU Cache
- web cache
- LRU的cache的实现
- cache实现的单例
- HTTP Cache的实现介绍
- LRU cache的简单实现
- LRU Cache的一种实现
- LRU cache的另一种实现
- LRU Cache的C++实现
- LRU Cache的简单实现
- 多线程并发的cache实现
- cache 的设计与实现
- 使用iscroll的问题与解决办法
- python json操作
- Shell部分7
- CodeLite 出现'auto' changes meaning in C++11的错误提示时的解决方法
- HBuilder如何与服务器上传代码
- Web Cache的实现
- 常用Sqlite语句
- SQL字符串处理函数大全
- Python 发个小邮件吧!
- UVa 10158 并查集+位操作
- opencv初识(一)
- QT 资料下载集合
- LeetCode(135)Candy
- 详解Handler机制和模拟Hangler