Azure Verizon CDN-100%缓存CONFIG_NOCACHE

时间:2018-06-26 21:27:56

标签: azure caching cdn cache-control azure-cdn

几天前,我如下设置了Azure Verizon Premium CDN:

来源:Azure Web应用程序(.NET MVC 5网站)
设置:自定义域,不进行地理位置过滤
缓存规则:标准缓存(无关参数)
压缩:已启用
针对进行了优化:动态网站加速
协议:HTTP,HTTPS,自定义域HTTPS
规则:通过规则引擎强制HTTPS(如果请求方案= http,则301重定向到https:// {customdomain} / $ 1)

所以-此CDN已经运行了几天,但是ADN报告说几乎100%(99.36%)的缓存状态是“ CONFIG_NOCACHE”(描述:“该对象配置为永不缓存根据边缘服务器上特定于客户的配置,因此响应是通过原始服务器提供的。”)其中一些(0.64%)为“无”(描述:“此请求完全绕过了缓存。例如,该请求立即被令牌认证模块拒绝,或者客户端请求方法使用了不可缓存的请求方法,例如“ PUT”。”)此外,在“缓存命中”报告中,它表示“ 0个命中,0个未命中” ”。什么都没有通过“ HTTP大”端通过,只有“ ADN”通过。

我在搜索时找不到这些确切的消息,但是我已经尝试过:

  • 将缓存控制标头更新为max-age,public(即:cache-control:public,max-age = 1209600)
  • 将缓存控制标头更新为max-age(缓存控制:max-age = 1209600)
  • 将expires标头更新为将来的日期方式(expires:Tue,2038年1月19日,格林尼治标准时间)
  • 使用不同的浏览器,因此请求缓存信息不同。在Chrome浏览器中,该请求是我的浏览器中的“缓存控制:无缓存”。在Firefox中,它将说“ Cache-Control:max-age = 0”。无论如何,我会假设网站上的用户没有这些相同的设置,对吗?
  • 刷新页面很多次,并查看实时报告以查看命中/未命中/缓存状态,并且显示出相同的内容-CONFIG_NOCACHE几乎适用于所有内容。
  • 尝试在https://www.dotcom-tools.com/website-speed-test.aspx上进行“全球”速度测试,但结果相同-一堆“ NOCACHE”命中。
  • 尝试添加ADN规则,以将内部和外部最大年龄设置为864000秒(10天)。
  • 尝试添加ADN规则以忽略“不缓存”请求,仅返回缓存的结果。

因此,“ NOCACHE”的消息说这是节点配置问题...但是我什至还没有真正配置它!我很困惑。这也可能是一个应用程序问题,但是我觉得我已经尽力尝试了“缓存控制”的所有不同排列。这是我希望缓存的一个文件的示例:

Screenshot from Chrome

最终,我希望大多数请求都被缓存,所以我希望大多数请求都是“ TCP Hit”。也许那是不正确的?预先感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

因此,我最终弄清楚了这个问题。显然,Azure Verzion Premium CDN ADN平台默认情况下启用了“旁路缓存”。

要禁用此行为,您需要为缓存规则配置其他功能。

示例:

如果总是
特点:
已禁用绕过缓存
强制内部最大年龄响应200 864000秒
忽略Origin No-Cache 200