gpt4 book ai didi

Azure CDN - 启用 HTTP 压缩 - 托管 Web 角色

转载 作者:行者123 更新时间:2023-12-04 01:45:08 27 4
gpt4 key购买 nike

有人成功了configured Azure CDN for HTTP compression使用他们的托管网络角色?我们在 Azure 边缘服务器上压缩 HTTP 内容时遇到问题。 CDN 仅缓存内容的未压缩版本。

如果我们从非 Azure 方法点击资源链接 (webresource.axd),它会通过 gzip 进行压缩(使用 xxxx.cloudapp.net/cdn/webresource.axd em>)如预期。但是,一旦我们将资源链接指向 Azure CDN (xxxx.vo.msecnd.net),尽管浏览器告知 Azure CDN 它接受 gzip,内容仍会以未压缩的形式提供。

posted this same issue to Azure Forums ,但目前尚未有人回复。

在排查问题时,Azure CDN 似乎正在删除 Accept-Encoding HTTP header 。只是好奇其他人是否也遇到过同样的问题。

Azure CDN Best Practices states...

How does the Windows Azure CDN work with compressed content?

The Windows Azure CDN will not modify (or add) compression to your objects. The Windows Azure CDN respects whatever compression is provided by the origin based on the "Accept-Encoding" header. As of 1.4, Azure Storage does not support compression. If you are using hosted-service object delivery, you can configure IIS to return compressed objects.

我们看到的是 CDN 不尊重源Accept-Encoding,它被剥夺了。

最佳答案

经过反复试验发现,Azure CDN 有一个当前限制,即它不会传递 Accept-Encoding HTTP header ,除非它找到包含可压缩文件名类型的 QueryString 参数(.js、.cs),或者您正在按其原始名称请求文件(jquery.js、site.css 等)。

这意味着如果您使用 AXD resource handler (WebResource.axd 等),将不会执行 HTTP 压缩。如果附加带有 .cs.js 扩展名的 QueryString 参数,Azure CDN 将仅传递 Accept-Encoding

我们正在使用自定义 AXD 资源处理程序,因此这对我们来说很容易实现。我们刚刚将 &group=core.js&group=core.css 应用到我们组合的缩小资源中,并且压缩按预期进行。不幸的是,当前的Azure CDN documentation中不存在这个。 .

简而言之,我们必须从此转换我们的 URI:

https://xxxx.vo.msecnd.net/resourceManager.axd?token=HL80vX5hf3lIAAA

对此:

https://xxxx.vo.msecnd.net/resourceManager.axd?token=HL80vX5hf3lIAAA&group=core.js

一旦 Azure CDN 在查询字符串中看到 .js,它将返回资源的压缩版本。

希望这对使用通过 Azure CDN 提供的 Web 资源 (AXD) 的其他人有所帮助。

关于Azure CDN - 启用 HTTP 压缩 - 托管 Web 角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10420004/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com