差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
第三方cdn_gzip压缩避坑指引 [2016/10/21 09:42]
ywjt [6 线上案例]
第三方cdn_gzip压缩避坑指引 [2016/10/21 17:51] (当前版本)
ywjt
行 4: 行 4:
 在周期性对商业CDN频道进行巡检的过程中,偶然发现浏览器发送了一个压缩请求,请求的是某个频道上的一个JS文件,而CDN节点竟然返回的是明文的JS内容。源机采用的是nginx作为web服务器,已经确认该频道的源机配置了对JS文件的GZIP压缩,且直接向源机发送浏览器请求,响应的的确是GZIP文件。\\ 在周期性对商业CDN频道进行巡检的过程中,偶然发现浏览器发送了一个压缩请求,请求的是某个频道上的一个JS文件,而CDN节点竟然返回的是明文的JS内容。源机采用的是nginx作为web服务器,已经确认该频道的源机配置了对JS文件的GZIP压缩,且直接向源机发送浏览器请求,响应的的确是GZIP文件。\\
 \\ \\
-经过跟其他频道源机对比后,发现该频道的源机没有配置Gzip Vary的头部。而商业CDN在源机没有给出明确的Vary:​ Accept-Encoding头部的情况下,直接忽略了客户端请求的Accept-Encoding头。全部把数据明文发送给了用户。也就是不管请求的是压缩的还是非压缩的数据,CDN节点全部返回了明文,未压缩的数据。+经过跟其他频道源机对比后,发现该频道的源机没有配置Gzip Vary的头部。而商业CDN在源机没有给出明确的Vary:​ Accept-Encoding头部的情况下,直接忽略了客户端请求的Accept-Encoding头。全部把数据明文发送给了用户。也就是不管请求的是压缩的还是非压缩的数据,CDN节点全部返回了明文,未压缩的数据。\\ 
 +\\ 
 +<color red>​而对于文本内容居多的CDN频道,数据压缩传输和明文传输两者的CDN带宽差异巨大,一般超过30%。因此有必要结合实际的业务需求,对CDN和源机配置进行参数调优,避免CDN带宽的浪费。</​color>​
  
 ===== - 概念解析 ===== ===== - 概念解析 =====
行 37: 行 39:
 :​!:​注意: :​!:​注意:
  
-  * 普通列表项目大部分HTTP1.0的客户端无法处理q值+  * 大部分HTTP1.0的客户端无法处理q值
   * 上面只是列出了web服务器的通用处理规则,实际规则跟web服务器的具体实现有关   * 上面只是列出了web服务器的通用处理规则,实际规则跟web服务器的具体实现有关
  
行 114: 行 116:
  
 ===== - 重点留意 ===== ===== - 重点留意 =====
-CDN频道是否要开启GZIP压缩要结合实际业务考虑,如果客户端非浏览器,而是自己实现的客户端,而客户端中又没有根据Content-Encoding响应头进行解压的话,会导致乱码,业务受损。部分网页游戏也可能存在类似的情况,要结合实际业务考虑。+<color red>CDN频道是否要开启GZIP压缩要结合实际业务考虑,如果客户端非浏览器,而是自己实现的客户端,而客户端中又没有根据Content-Encoding响应头进行解压的话,会导致乱码,业务受损。部分网页游戏也可能存在类似的情况,要结合实际业务考虑。</​color>​