开发者社区 > 博文 > CDN智能压缩功能解释
分享
  • 打开微信扫码分享

  • 点击前往QQ分享

  • 点击前往微博分享

  • 点击复制链接

CDN智能压缩功能解释

  • 京东云技术交付部
  • 2021-01-22
  • IP归属:未知
  • 243240浏览

智能压缩,你了解几分?

关于“智能压缩”的功能,有几个问题和大家分享一下:(需要后台配置)

1、 如果源站开启了Gzip开关,是不需要在CDN的控制台上再开启“智能压缩”功能的

1)源站开启GzipCDN控制台关闭“智能压缩”时的情况:

        当客户端请求带有Gzip时,是可以返回Gzip压缩后的内容的。所以源站开启了Gzip,就不需要在控制台再开启“智能压缩”开关了。

        当客户端请求没有Gzip时,没有命中缓存(Miss)的,说明CDN节点上还会缓存一份没有经过压缩的内容,也就是同时缓存一份压缩过,一份没有压缩过的两份内容。此时,CDN会根据客户端的请求是否带有Gzip来返回不同的缓存内容。

2)由于现在的浏览器在请求时都会带上Accept-Encoding:gzip, deflate, sdch 的请求头,所以源站响应的基本都是压缩后的内容,可以减少源站的带宽压力。

 

2 如果源站没有开启Gzip开关,才需要在CDN控制台上开启“智能压缩”功能

      但是不推荐这种方式,还是推荐客户使用“在源站开启Gzip的方式,CDN控制台上不必开启“智能压缩”功能”。

1)源站关闭Gzip开关,CDN控制台开启“智能压缩”:                  

        当客户端请求带有Gzip时,是可以返回Gzip压缩后的内容的。

        当客户端请求没有Gzip时,也是命中缓存(Hit)的,说明CDN节点上只缓存了一份没有经过压缩的内容。(CDN的研发核实,这种情况下,CDN上只有没有压缩的内容,当客户端请求带有Gzip时,每次请求,CDN节点都需要进行一次压缩计算,对CDN节点的性能有很大影响。同时这种情况下CDN回源时,源站吐出的是没有压缩过的内容,对源站的带宽压力也比较大。)

 

3、 有时源站开启了Gzip开关,但是当客户端请求带有Gzip时,没有返回Gzip压缩后的内容

这种情况,一般是由于CDN在回源时,请求中会带有Viaheader,有些WEB服务无法正确的处理这个header,导致没有响应压缩后的内容:

针对这种情况,需要在源站进行配置,以Nginx为例,需要添加如下配置:

gzip_proxied any;



在此感谢各位童鞋阅读,如果能够对大家有所帮助,欢迎点赞转发。

同时欢迎扫码关注京东云技术中台团队的公众号:云服务飞行团;更多精彩内容会持续放送!

共0条评论