CDN缓存策略
CDN(Content Delivery network,内容分发网络),通过GSLB技术使得用户能访问到最近物理机房的文件,以节省网络时间,也就是说一份文件可能会在全国乃至全球的多个服务器存在,这就涉及到一个文件分发的问题,目前通常的CDN都是采取回源策略来同步文件,即每个cdn域名关联了一些源服务器,发布文件只要发布到源服务器即可,cdn会根据策略从源服务器拉取文件,以保证用户能尽早访问到最新的文件内容。 那么cdn何时会去源服务器取内容呢?事实上,这个策略和浏览器缓存非常类似,我们知道,http 1.1通过cache-control的max-age头可以告知文件在浏览器的缓存时间,在max-age指定的时间内,浏览器会直接使用本地缓存,而不会请求服务器,cdn采取了类似的机制,你只要把cdn节点看成浏览器,源服务器看成浏览器需要请求的服务器即可,此时,源服务器的max-age头决定了资源在cdn节点本地缓存的时间,有一点差别的是,cdn规定了一个自定义协议,s-maxage,若源站该header存在,会优先使用该header作为缓存时间: Cache-Control:max-age=0, s-maxage=86400 举个栗子解释下cdn缓存策略: 为了避免干扰,我们假设例子中说的cdn只有你一个人在访问。 源站的max-age设定了缓存时间为3600秒,即一小时