我正在使用灯环境,
如果客户想准备好使用CDN,在网站开发过程中我需要注意什么?
谢谢
最简单的方法可能是确保静态资产(通常是图像、javascript 和 CSS)易于缓存和移动。我们使用一个特殊的模板函数完成了这项工作,该函数接受一个相对 URL(类似于/images/graphics/someimage.png
)并将其转换为指向我们的静态服务器(http://static.example.com/images/graphics/someimage.png
)的链接。
当您有一个功能可以执行此操作并使用它来生成所有静态资产 URL 时,稍后将这些资产移动到不同的服务器甚至是基于地理位置的不同服务器将是微不足道的。
当您说 CDN 时,您是指内容分发网络(如 Akamai)吗?如果是这样,那么答案是“视情况而定”。
这取决于您使用的服务:每个服务都有不同的功能。Akamai 有一个完整的 API,您可以使用它来做各种有趣的事情。有些人只对东西海岸的服务器进行地理 DNS 技巧。有些介于两者之间。
这还取决于您要使用该服务的目的。只是图像托管?文件下载?流媒体内容?
您还可以缓存动态页面,这可以为性能带来巨大的好处,但请记住,您不能缓存任何包含个性化数据的页面。
例如,假设您每小时更新一个新闻页面,您可以将其缓存在 CDN 上,其 TTL(生存时间)为 10 分钟。这将加快页面时间并减少服务器负载。
但是,如果您有任何个性化数据,例如横幅中的“欢迎,用户名”,则您不能再缓存整个页面,因为它会向访问者提供错误的数据。
避免这种情况的一种技术是将个性化数据放在不同文件夹中的单独页面片段中,并通过 AJAX 加载它们,确保永远不会缓存此文件夹。