我需要一些关于 CDN 使用动态查询的反馈。我会知道动态和静态查询之间的最佳选择。
就我而言,我们有一个包含大量静态内容的网页游戏。我们每两周执行一次发布,并在 CDN 上添加一些内容,但我们也会更新其中的一些内容。
我看到三种可能的方式:1)对每个文件使用版本控制(例如:welcome01.jpg、welcome02.jpg)2)对每个文件使用动态查询(例如:welcome.jpg?v=01、welcome.jpg?v=02 ) 3) 使用不带版本控制的命名,并且对于每个已修改的文件,在 CDN 上执行失效(清除)。
对我来说,解决方案 3 是最糟糕的,因为我们无法设置高缓存,我们必须使每个更新的文件无效,已经在 CDN 中。
在解决方案 1 和 2 之间,我认为 1 是最好的,因为当我在我的 orign 服务器上上传我的新静态内容并在 CDN 上执行部署时,我的所有内容都在每个边缘发送。在这种情况下,我可以设置一个高缓存内容值。在解决方案 2 中,我认为性能比解决方案 1 最差,因为当我在源服务器中添加新内容(有一些文件更新)时,只有新文件被发送到边缘。更新的文件仅在客户端使用新参数执行查询时可用(例如:welcome.jpg?v=03)。在这种情况下,边缘服务器将在我的源服务器上下载welcome.jpg 并将他与新参数相关联。但他并没有在所有其他 Edge 中复制。
对我来说,解决方案 2 在性能级别上低于解决方案 1,但是对于它们两者,我们都可以设置一个高缓存内容值。
你能给我你的意见或更多的信息吗?
提前致谢。
PS:我们使用云端,但这是所有 CDN 提供商的普遍问题。