Web缓存代理

目录

前瞻

web缓存代理的工作机制

web缓存代理的作用

常见的Web缓存代理应用

squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

数据库缓存代理应用

Nginx 缓存代理

CDN缓存代理

简介

原理

CDN对网络的优化作用主要体现在如下几个方面

CDN工作原理

传统访问过程

CDN访问过程


前瞻

web缓存代理的工作机制

代替客户向网站请求数据,从而可以隐藏用户的真实 IP 地址
将获得的网页数据 ( 静态 web 元素 ) 保存到缓存中并发送给客户端,以便下次请求相同的
数据时快速响应

web缓存代理的作用

存储一些之前被访问的,且可能将要被再次访问的静态网页资源对象,使客户端可以直接从缓存代理服务器获取资源,从而减少上游原始服务器的负载压力,加快整个访问速度。代理服务器还可以代替客户端去获取原始服务器的资源,从而隐藏客户端真实地址。

  • 资源获取:代替客户端实现从原始服务器的资源获取
  • 加速访问:代理服务器可能离原始服务器更近,从而起到一定的加速作用
  • 缓存作用:代理服务器保存从原始服务器所获取的资源,从而实现客户端快速的获取
  • 隐藏真实地址:代理服务器代替客户端去获取原始服务器资源,从而隐藏客户端真实信息

常见的Web缓存代理应用

本地实现 Nginx  Squid  Varnish

云环境远端实现 CDN

squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

Squid Varinsh Nginx 都是代理服务器什么是代理服务器 : 能当替用户去访问公网,
并且能把访问到的数据缓存到服务器本地,等用户下次再访问相同的资源的时候,代理服
务器直接从本地回应给用户,当本地没有的时候,我代替你去访问公网,我接收你的请
求,我先在我自已 , 的本地缓存找,如果我本地缓存有,我直接从我本地的缓存里回复你如
果我在我本地没有找到你要访问的缓存的数据,那么代理服务器就会代替你去访问公网。
区别:
1 )Nginx 本来是反向代理 /web 服务器,用了插件可以做做这个副业但是本身不支持特性挺
多,只能缓存静态文件 ;
2 ) 从这些功能上。 varnish squid 是专业的 cache 服务,而 nginx 这些是第三方模块完
;
3 )varnish 本身的技术上优势要高于 squid ,它采用了可视化页面缓存技术 ; 在内存的利
用上, Varnish Squid 具有优势,性能要比 Squid 高。还有强大的通过 Varnish 管理端
口,可以使用正则表达式快速、批量地清除部分缓存它是内存缓存,速度一流,但是内存
缓存也限制了其容量,缓存页面和图片一般是挺好的 ;
4 )squid 的优势在于完整的庞大的 cache 技术资料,和很多的应用生产环境
工作中选择:
要做 cache 服务的话,我们肯定是要选择专业的 cache 服务,优先选择 squid 或者
varnish

数据库缓存代理应用

Redis  Memcached

Nginx 缓存代理

nginx.conf文件配置

http {
    proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;
	
#####################################################
●path:强制参数,指定缓存文件的存放路径。
●levels:定义了缓存目录的层级。每层可以用1(最多16种选择,0-f)或2(最多256种选择,00-ff)表示,中间用 : 分隔。
proxy_cache_path /data/nginx/cache;  代表所有缓存只有一个目录,比如/data/nginx/cache/d7b6e5978e3f042f52e875005925e51b
proxy_cache_path /data/nginx/cache levels=1:2;  代表缓存是二层目录(有16*256=4096个目录),比如/data/nginx/cache/b/51/d7b6e5978e3f042f52e875005925e51b
●keys_zone:强制参数,定义共享内存区的名称和大小,该共享内存用于保存缓存项目的元数据(所有活动的key和缓存数据相关的信息),这样nginx可以快速判断一个request是否命中或者未命中缓存,1m可以存储8000个key,10m可以存储80000个key。
●inactive:删除指定时间内未被访问的缓存文件,默认10分钟。
●max_size:设置了缓存存储的上限,如果不指定,最大会用掉所有磁盘空间。
●use_temp_path:直接把临时文件放在缓存目录中。
#####################################################
    
    upstream cache_server{
        server 192.168.75.60:80;
        server 192.168.75.70:80;
    }
    
    server {
        listen 80;
        server_name www.kgc.com;
        location / {
            proxy_cache my_cache;               #指定用于页面缓存的共享内存,zone名称由proxy_cache_path指令定义
            proxy_cache_valid 200 10s;           #为不同的响应状态码设置不同的缓存时间,此为缓存状态码为200的请求,缓存时长为10秒钟
            proxy_cache_key $request_uri;       #指定缓存文件的key为请求的URI
            add_header Nginx-Cache-Status $upstream_cache_status      #把缓存状态设置为头部信息,响应给客户端
            proxy_pass http://cache_server;     #设置代理转发的后端服务器的协议和地址
        }
    }
}

 

去到节点服务服务器添加测试文件

在html路径下添加测试文件

 开启缓存服务器和上游节点服务器的nginx服务

缓存状态 

MISS # 未命中缓存
HIT # 命中缓存
EXPIRED # 缓存过期
STALE # 命中了陈旧缓存
REVALIDDATED # Nginx 验证陈旧缓存依然有效
UPDATING # 内容陈旧,但正在更新
BYPASS #x 响应从原始服务器获取

去到浏览器进行访问测试

 

 

CDN缓存代理

简介

CDN的全称是(Content Delivery Network),即内容分发网络。其目的是通过在现有
的Internet中增加一层新的CACHE(缓存)层,将网站的内容发布到最接近用户的网络”边
缘“的节点,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。从技术上全
面解决由于网络带宽小、用户访问量大、网点分布不均等原因,提高用户访问网站的响应速
度。
简单的说,CDN的工作原理就是将您源站的资源缓存到位于全球各地的CDN节点上,用户请
求资源时,就近返回节点上缓存的资源,而不需要每个用户的请求都回您的源站获取,避免
网络拥塞、缓解源站压力,保证用户访问资源的速度和体验

原理

CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的
地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正
常的缓存服务器上,由缓存服务器直接响应用户请求。
全局负载均衡主要用于在多个区域拥有自己服务器的站点,为了使全球用户只以一个IP地址
或域名就能访问到离自己最近的服务器,从而获得最快的访问速度。
CDN 基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节使内
容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上
的一层智能虚拟网络,CDN 系统能够实时地根据网络流量和各节点的连接、负载状况以及
到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。
其目的是使用户可就近取得所需内容,解决 Internet 网络拥挤的状况,提高用户访问网
站的响应速度。

CDN对网络的优化作用主要体现在如下几个方面

  • 解决服务器端的“第一公里”问题
  • 缓解甚至消除了不同运营商之间互联的瓶颈造成的影响
  • 减轻了各省的出口带宽压力
  • 缓解了骨干网的压力
  • 优化了网上热点内容的分布

 

CDN工作原理

传统访问过程

1.用户输入访问的域名,操作系统向 LocalDns 查询域名的ip地址.
2.LocalDns向 ROOT DNS 查询域名的授权服务器(这里假设LocalDns缓存过期)
3.ROOT DNS将域名授权dns记录回应给 LocalDns
4.LocalDns得到域名的授权dns记录后,继续向域名授权dns查询域名的ip地址
5.域名授权dns 查询域名记录后,回应给 LocalDns
6.LocalDns 将得到的域名ip地址,回应给 用户端
7.用户得到域名ip地址后,访问站点服务器
8.站点服务器应答请求,将内容返回给客户端.

CDN访问过程

1.用户输入访问的域名,操作系统向 LocalDns 查询域名的ip地址.
2.LocalDns向 ROOT DNS 查询域名的授权服务器(这里假设LocalDns缓存过期)
3.ROOT DNS将域名授权dns记录回应给 LocalDns
4.LocalDns得到域名的授权dns记录后,继续向域名授权dns查询域名的ip地址
5.域名授权dns 查询域名记录后(一般是CNAME),回应给 LocalDns
6.LocalDns 得到域名记录后,向智能调度DNS查询域名的ip地址
7.智能调度DNS 根据一定的算法和策略(比如静态拓扑,容量等),将最适合的CDN节点ip
地址回应给 LocalDns
8.LocalDns 将得到的域名ip地址,回应给 用户端
9.用户得到域名ip地址后,访问站点服务器

10.CDN节点服务器应答请求,将内容返回给客户端.(缓存服务器一方面在本地进行保
存,以备以后使用,二方面把获取的数据返回给客户端,完成数据服务过程)

通过以上分析我们可以得到为了实现对普通用户透明(使用缓存后用户客户端无需进
行任何设置)访问,需要使用DNS(域名解析)来引导用户来访问Cache服务器,以实现透明
的加速服务. 由于用户访问网站的第一步就是域名解析,所以通过修改dns来引导用户访问
是最简单有效的方式

  • 18
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值