几天前,我设置了 Azure Verizon Premium CDN,如下所示:
Origin:Azure Web 应用程序(.NET MVC 5 网站)
Settings:自定义域,无地理过滤
缓存规则:标准缓存(不关心参数)
压缩:启用
优化用于:动态站点加速
协议:HTTP、HTTPS、自定义域HTTPS
Rules:通过规则引擎强制使用 HTTPS(如果请求方案 = http,则 301 重定向到 https://{customdomain}/$1)
所以 - 这个 CDN 已经运行了几天了,但是 ADN 报告说几乎 100% (99.36%) 的缓存状态是“CONFIG_NOCACHE”(描述:“该对象被配置为永远不会根据客户特定的配置驻留在边缘服务器上,因此响应是通过源服务器提供的。”)其中少数(0.64%)是“无”(描述:“此请求完全绕过了缓存。例如,该请求立即被令牌身份验证模块拒绝,或者客户端请求方法使用了不可缓存的请求方法,例如“PUT”。)此外,在“缓存命中”报告中,它显示每个“0 命中,0 未命中”天。没有任何内容通过“HTTP Large”端,只有“ADN”。
我在四处搜索时找不到这些确切的消息,但我尝试过:
- 将缓存控制标头更新为 max-age, public (即:缓存控制:public,max-age=1209600)
- 将缓存控制标头更新为 max-age (缓存控制: max-age=1209600)
- 将过期标头更新为未来的日期(过期时间:2038 年 1 月 19 日星期二 03:14:07 GMT)
- 使用不同的浏览器所以请求缓存信息不同。在 Chrome 中,请求在我的浏览器中是“cache-control: no-cache”。在 Firefox 中,它会显示“Cache-Control: max-age=0”。无论如何,我假设网站上的用户不会有这些相同的设置,对吧?
- 多次刷新页面,并查看实时报告以查看命中/未命中/缓存状态,它显示相同的内容 - 几乎所有内容的 CONFIG_NOCACHE。
- 尝试运行“全球”速度测试https://www.dotcom-tools.com/website-speed-test.aspx https://www.dotcom-tools.com/website-speed-test.aspx,但结果是一样的——一堆“NOCACHE”命中。
- 尝试添加 AND 规则将内部和外部最大期限设置为 864000 秒(10 天)。
- 尝试添加 ADN 规则以忽略“无缓存”请求并仅返回缓存结果。
所以,“NOCACHE”的消息说这是一个节点配置问题......但我什至还没有真正配置它!我很困惑。这也可能是一个应用程序问题,但我觉得我已经尝试了“缓存控制”的所有不同排列。以下是我希望缓存的一个文件的示例:
最终,我希望大多数请求都被缓存,所以我会看到大多数请求都是“TCP Hit”。也许这是不正确的?在此先感谢您的帮助!
所以,我最终弄清楚了这个问题。显然,Azure Verzion Premium CDN ADN 平台默认启用“绕过缓存”。
要禁用此行为,您需要为缓存规则配置其他功能。
Example:
如果总是
特征:
绕过缓存已禁用
强制内部最大年龄响应 200 864000 秒
忽略来源无缓存 200
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)