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标头.只是好奇,如果其他人有同样的问题.
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).
| 归档时间: |
|
| 查看次数: |
4935 次 |
| 最近记录: |