用于图像的 Azure CDN 缓存很慢?

Azure CDN caching for images, slow?

我创建了一个图像服务,可以为我提供各种尺寸和效果的图像。

这是一个示例图片:

https://nfimageservice.azurewebsites.net/image/b2daa6c7-256a-4e29-8a94-3056e3622dfb?width=720&width=480&fade=10&fluf=50

这不是一个特别快的服务,所以我想通过使用 CDN 来加快一点速度。这是同一图像的 CDN url:

https://nfimageservice.azureedge.net/image/b2daa6c7-256a-4e29-8a94-3056e3622dfb?width=720&width=480&fade=10&fluf=50

如您所见,URL 具有决定大小和效果的查询字符串参数。

在 CDN 的设置中,我将 Query string caching behavior 设置为 Cache every unique URL

在规则部分,我尝试了以下操作:

我们的想法是将 Web 应用程序中的所有内容缓存 1 分钟(这可能会改变),但是来自 https://nfimageservice.azurewebsites.net/image/* 且查询字符串作为密钥的一部分的所有内容都应缓存 365 天。这毕竟是图像的来源。

我试过多次加载页面,等了很长时间才再次尝试,清除了 CDN 中的所有图像等等,但我仍然从 azurewebsites 获得加载时间,这比来自 azureedge。我意识到我一定做错了什么,但我终究无法弄清楚到底是什么。

事实上,当您访问您的网站时,使用CDN 的速度相对于不使用CDN 的速度要快一些。主要取决于您所在位置访问CDN边缘服务器所在的网络环境或其他因素。查看有关 How caching works.

的更多详细信息

例如,如果您位于美国东部,POP 位置在欧洲派送,您的网站位于美国西部。通常,不使用 CDN 直接访问您的网站的速度比使用 CDN 更快,因为美国西部离您的位置更近。还有,全球网络环境不受控制。

为了进行简短测试,我将该图像 URI 添加到我的 Azure CDN 并且没有设置规则引擎。使用 CDN 比没有 CDN 从我的位置直接访问更快。

有 CDN

没有 CDN