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

Sli*_*SFT 11 cdn azure azure-web-roles azure-cdn

有没有人使用托管的Web角色成功配置Azure CDN进行HTTP压缩?我们在Azure边缘服务器上压缩HTTP内容时遇到问题.CDN仅缓存内容的未压缩版本.

如果我们打我们的资源链接(WebResource.axd的从非Azure的方式通过的gzip压缩它)(使用xxxx.cloudapp.net/cdn/webresource.axd)如预期.但是,只要我们将资源链接指向Azure CDN(xxxx.vo.msecnd.net),尽管浏览器告知Azure CDN它接受gzip,但内容仍然是未压缩的.

向Azure论坛发布了同样的问题,但是到目前为止还没有人回复.

在解决问题时,似乎Azure CDN正在剥离Accept-Encoding HTTP标头.只是好奇,如果其他人有同样的问题.

Azure CDN最佳实践声明......

Windows Azure CDN如何使用压缩内容?

Windows Azure CDN不会修改(或添加)对象的压缩.Windows Azure CDN遵循基于"Accept-Encoding"标头的原始提供的压缩.从1.4开始,Azure存储不支持压缩.如果使用托管服务对象传递,则可以将IIS配置为返回压缩对象.

我们所看到的是CDN不尊重原点Accept-Encoding,它被剥夺了.

Sli*_*SFT 13

通过试验和错误发现Azure CDN具有当前限制,它不会传递Accept-Encoding HTTP标头,除非它找到包含可压缩文件名类型(.js,..)的QueryString参数或者您正在请求文件按其原始名称(jquery.js,site.css等).

这意味着如果您使用AXD资源处理程序(WebResource.axd等),则不会执行HTTP压缩.如果您使用或扩展名附加QueryString参数,Azure CDN将仅传递Accept-Encoding..cs.js

我们正在使用自定义AXD资源处理程序,因此我们很容易实现.我们刚刚申请&group=core.js&group=core.css为我们共同的精缩资源和压缩担任预期.不幸的是,目前的Azure CDN文档中不存在这种情况.

简而言之,我们必须从这里转换我们的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).

  • 谢谢(你的)信息.我将收集此反馈,并尝试将其包含在文档中. (3认同)