不管访问多少次,X-Cache 始终是 MISS,X-Swift-CacheTime 也一直为 0。
X-Cache 为 MISS,X-Swift-CacheTime 为 0,CDN不缓存。
X-Cache 为 MISS,X-Swift-CacheTime 为 0,CDN不缓存。
X-Cache 为 MISS,X-Swift-CacheTime 为 0,CDN不缓存。
试下能否正常被CDN缓存。
X-Cache 变成了 HIT,X-Swift-CacheTime 变成了 300,也就是CDN缓存5分钟。
缓存规则权重不同,有两条缓存规则,其中 /static/ 目录类型的权重最大,意味着优先级最高。
请求 /static/ 目录下 html 后缀的文件,看下匹配到哪条规则?
X-Swift-CacheTime: 120,这是匹配到了 /static/ 目录类型的规则。
缓存规则权重相同, html 文件后缀名的规则创建时间最早,正常情况应该是匹配到该条规则。
X-Swift-CacheTime: 300,确实匹配到了 html 文件后缀名规则。
CDN不要设置缓存规则,然后nginx配置内容如下,Cache-Control设置为60秒,Expires设置为120秒。
源站响应头部有 Cache-Control 、 Expires 、 Last-Modified 、 ETag ,测试看看哪个优先级最高。
X-Swift-CacheTime: 60,Cache-Control 的优先级高一些。
在nginx配置中将 add_header Cache-Control "max-age=60" 去掉再试试。
X-Swift-CacheTime: 120,缓存规则是用 Expires 的时间了。
去掉nginx配置中的 expires 120s。
X-Swift-CacheTime 会随着时间变化,这是因为缓存过期了,CDN重新去源站拉取,然后重新计算缓存过期时间。
ok,最后一步,将 Last-Modified 响应头部给干掉。
只有 Etag 响应头部,不管访问几次,依旧是 X-Swift-CacheTime: 10。
将4个响应头部都干掉,看下CDN是否会缓存。
多次测试始终是 X-Cache: MISS 和 X-Swift-CacheTime: 0,这说明如果这4个响应头部都没了,CDN是不缓存的。
CDN内容分发网络。CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。
加速节点是CDN服务商在全国各地部署的节点服务器,当用户访问网站的时候就就近从最近的节点服务器访问,提高访问速度。
扩展资料:
内容分发网络(CDN)包括分布式存储、负载均衡、网络请求的重定向和内容管理4个要件,而内容管理和全局的网络流量管理是CDN的核心所在。通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务。
总的来说,内容服务基于缓存服务器,也称作代理缓存,它位于网络的边缘,距用户仅有"一跳"之遥。同时,代理缓存是内容提供商源服务器(位于CDN服务提供商的数据中心)的一个透明镜像。这样的架构使得CDN服务提供商能够代表他们客户,即内容供应商,向最终用户提供
关键技术:
1、内容发布:它借助于建立索引、缓存、流分裂、组播(Multicast)等技术,将内容发布或投递到距离用户最近的远程服务点(POP)处;
2、内容路由:它是整体性的网络负载均衡技术,通过内容路由器中的重定向(DNS)机制,在多个远程POP上均衡用户的请求,以使用户请求得到最近内容源的响应;
3、内容交换:它根据内容的可用性、服务器的可用性以及用户的背景,在POP的缓存服务器上,利用应用层交换、流分裂、重定向(ICP、WCCP)等技术,智能地平衡负载流量;
4、性能管理:它通过内部和外部监控系统,获取网络部件的状况信息,测量内容发布的端到端性能(如包丢失、延时、平均带宽、启动时间、帧速率等),保证网络处于最佳的运行状态。
参考资料来源:百度百科-CDN
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)