安全播报

防御吧作为15年知名老牌域名服务商,CNNIC和CANN双认证域名注册商,已经
持续为500多万个域名提供服务,包括智能DNS/自由转移/隐私保护等服务!
cdn缓存架构方案设计 cdn会缓存动态数据吗
2023-09-26 11:38:27 【

CDN(Content Delivery Network)即内容分发网络,通过在网络各处放置节点服务器,构成在现有的互联网基础之上的一层智能虚拟网络。

CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上,用于确保快速可靠地分发静态内容,这些内容可以缓存,最适合在网速庞大的网络中存储和分发。


适用范围

CDN 对于常见的 HTTP 请求方式(GET POST HEAD PUT DELETE OPTIONS)均是支持的,但是并不是对所有请求方式都会进行缓存的。


CDN 仅会对于 GET 请求进行缓存,而对于其他的请求均不进行缓存,仅是起到中间代理、转发的功能。


CDN 的站点源站最好能够 将动态请求和静态请求的内容独立成两个站点,实现动静分离, CDN 仅加速静态站点中的资源。


注意:


CDN 处理 HEAD 请求时会将 HEAD 请求转换成 GET 请求回源,因此源站日志中记录的是 GET 请求。

CDN 仅支持 POST 和 PUT 方式发送带有请求体(BODY)的 HTTP 请求。

缓存规则

CDN 判断一个资源是否进行缓存时,首先会根据源站对该资源是否设置了不进行缓存的配置,具有最高优先级:

源站配置了缓存规则转 2;

源站没有任何配置转 3 ;

浏览器缓存转 7 。

源站配置了以下规则时, CDN 不会进行缓存,且浏览器也不会缓存,每次请求该资源都将访问源站,无法进行缓存加速,如果没有则转 4 :

Cache-Control 有s-maxage=0,no-cache,no-store,private其中一种

Cache-Control 没有s-maxage或者s-maxage=0,但有max-age=0

有单独 no-cache 参数

源站没有配置缓存规则时,CDN 将根据CDN服务控制后台缓存规则配置进行缓存,如果代理商后台配置了缓存规转 4 ,没有转 5 。

CDN 服务控制后台配置了缓存规则时,将使用CDN 缓存策略覆盖源站缓存策略,CDN缓存配置的优先级为:

权重越高的优先级越高;

同等优先级后缀名优先级高于目录优先级;

相同权重且相同优先级则随机匹配(建议避免第三种场景)

CDN 服务控制后台没有配置缓存规则,则根据源站缓存规则进行缓存,常见的源站缓存规则有 Cache-Control和 Expires 头,根据 HTTP 协议 Cache-Control 的优先级高于 Expires 头,并且 s-maxage 设置高于 max-age 设置。

CDN 和源站都没有配置缓存规则,则遵循 CDN 默认缓存规则,默认缓存规则包括:

response 头没有 Etag 和 Last-Modified ,默认是不缓存的(一般认为此类文件为动态文件);

没有 Last-Modified ,有 Etag 的文件,默认缓存 10 秒;

有 Last-Modified 按照 (当前时间 - Last-Modified) * 0.1,且将其限制在 [10,3600] 区间内。

源站设置了不缓存的规则时,浏览器是不缓存的;如果 CDN 修改了 Cache-Control 或者 Expires 头时,浏览器会按照该修改头缓存;如果没有修改即会按照源站的策略缓存。


注意:更新静态文件时,在文件末尾增加版本号能使CDN立即生效,如bugall.js --> bugall.js?time=1402394823

缓存更新

缓存刷新方式有 URL 刷新、目录刷新和 URL 预热。


URL 刷新是以文件为单位进行缓存刷新。

目录刷新是以目录为单位,将目录下的所有文件进行缓存刷新。

URL 预热是以文件为单位进行资源预热。

刷新后,会删除该资源在全网 CDN 节点上的缓存。当用户请求到达节点时,节点会回源站拉取对应资源,返回给用户并缓存到节点,保证用户获取到最新资源。

预热后,该资源会提前缓存到全网 CDN 节点。当用户请求到达节点时,可以直接在节点获取到资源。

您在源站上更新资源后,如果希望用户访问不再获取旧资源,直接获取新资源,您可以使用 URL 刷新 或 目录刷新 功能。

如果希望 CDN 预先将资源由源站主动缓存至 CDN 节点,则可以使用 URL 预热 功能。



】【打印关闭】 【返回顶部
分享到QQ空间
分享到: 
上一篇没有了 下一篇深入了解当前的DDoS防护技术和方法

立足首都,辐射全球,防御吧专注云防御及云计算服务15年!

联系我们

服务热线:13051179500 18910191973
企业QQ:1245940436
技术支持:010-56159998
E-Mail:xihedata.com
Copyright ? 2003-2016 fangyuba. 防御吧(完美解决防御与加速) 版权所有 增值许可:京B2-20140042号
售前咨询
公司总机:18910191973
24小时电话:010-56159998
投诉电话:18910191973
值班售后/技术支持
售后服务/财务
备案专员
紧急电话:18610088800