我对 CDN 一无所知,明天我将开始对它们进行一项注定漫长的调查。
但我想分享我对 CDN 的理想愿景 - 它基本上映射到“付费代理”的概念。
简而言之,我只想缓存所有静态文件(js、css、图像等),以便用户始终访问足够近的 POP。
在我看来,实现这个目标应该非常简单,我只需改变:
脚本:src = 'http://abc.com/script.js'
图片来源 = 'http://abc.com/image.jpg‘
到:
脚本:src = 'http://cdn.com?src=abc.com/script.js'
图片来源 = 'http://cdn.com?src=abc.com/image.jpg‘
代理只会查询我的服务器一次,然后将内容推送到边缘。无需明确上传、无需麻烦、无需 API 等。
我是在做梦还是这是可以实现的?
谢谢。
答案1
这就是他们所说的原产地拉动CDN。这些代理通常会在有限的时间内保留内容,并在请求时刷新。还有其他类型的 CDN,它们也允许您直接将内容上传到它们。
答案2
您描述的技术有效,并且可在多家提供商上使用。
调查期间需要考虑的一些要点:
- 失效:要么基于源设置的标头,要么基于预配置的规则,要么基于你对 CDN 的明确调用
- 将标头复制到您的客户端,这样您也可以影响他们的缓存策略
- ESI,与 SSI 非常相似
- 交付性能和保证 - 一些 CDN 专注于特定大陆;如果您的一部分受众在其他地方,他们将无法享受出色的低延迟服务。问这个问题并没有错。
- 价格,cdn 的标价非常离谱。您应该(根据您的功能和流量)始终将价格谈低一些。
此外,部署 CDN 的原因通常是为了能够处理突发流量。确保您的合同反映了这一点。
如果你需要更多关于如何选择和集成 CDN 或扩展的指导,请给我留言
答案3
听起来有点像亚马逊云的扩展。例如,woot 上的所有静态内容都由亚马逊提供。可以通过安装静态内容根目录来通过 ftp 将文件转储到云中来实现。
编辑:抱歉,错过了?=host/resource部分。