azure cdn purge不刷新缓存内容

jpe*_*tte 5 azure azure-cdn azure-blob-storage

我有一个连接到blob存储的Azure CDN(Verizon,premium).根据本教程中的第6步,我有2条规则.这些规则旨在强制CDN在调用CDN的根目录时提供"index.html".它们可能与问题相关,也可能不相关,但步骤6中描述如下:

  1. 确保下拉列表显示"IF"和"Always"
  2. 单击"功能"旁边的"+"按钮两次.
  3. 将两个新创建的下拉菜单设置为"URL Rewrite"
  4. 将所有源和目标下拉列表设置为您创建的端点(具有端点名称的值)
  5. 对于第一个源模式,设置为((?:[^ \?] /)?)($ | \?.)
  6. 对于第一个目标模式,设置为$ 1index.html $ 2
  7. 对于第二个源模式,设置为((?:[^ \?] /)?[^ \?/.] +)($ | \?.)
  8. 对于第二个目标模式,设置为$ 1/index.html $ 2

我最初上传文件到blob存储,能够通过CDN点击它们(证明上述规则正常工作),然后更改本地文件(调试)以上传到blob存储.更新blob存储上的所有文件并选中"purge all"选项后手动清除CDN端点后,CDN将为旧文件提供服务,并在直接访问blob存储时提供新文件.这似乎发生在每个文件中(即使直接命中文件,而不仅仅是index.html).等待~10小时后,仍然会发生这种情况,清除浏览器缓存,并尝试从未用过访问CDN的浏览器.

有谁知道可能会发生什么?它是否缓存在我的网络和CDN端点之间?我觉得我可能会错过很简单的东西......

编辑1:我有另一个Verizon(非高级)CDN连接到同一个存储容器,它在清除后获取正确的文件; 然而,即使是现在(24小时后),高级CDN也没有提供更新的文件.

编辑2:称为微软对Azure的支持,他们花了大约6个小时进行调查,但没有成功.我们最终再次尝试清除,现在正在发送更新的文件.仍然不确定问题是什么.

jpe*_*tte 7

在与Microsoft和Verizon Digital Media支持合作数周后,他们终于找到了解决方案.

为了避免干扰清除过程,最简单的方法是在规则的"功能"部分之前实现以下"IF"语句:

如果| 请求标头通配符| 名称| 用户代理| 不匹配| 值| ECPurge/*| 忽略大小写(已选中)

对于使用清除用户代理发出的请求,此if语句将完全跳过此规则,从而允许请求正常命中CDN.

  • 如果您可以编辑此内容并发送屏幕截图,那就更好了。Azure CDN 规则可能会因文字而变得复杂 (2认同)
  • 令人惊奇的是,我们必须跳过这么多复杂的环节才能做一些开箱即用或使用最少的基本配置的事情。我是 AWS 人员,但我当前的客户在某种程度上与 Microsoft 有联系,所以我被迫进入这个痛苦的世界。Azure 的问题接二连三,我在网上能找到的只有“肮脏”的黑客攻击。似乎每个解决方案都是通过肮脏的黑客解决的 - 为什么他们不能真正投资一些钱给**有能力的** UX 设计师和工程师,而不是我们损失数周的开发时间来尝试解决这些问题......(1/2 ) (2认同)