设为首页收藏本站

ZMX - IT技术交流论坛 - 无限Perfect,追求梦想 - itzmx.com

 找回密码
 注册论坛

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

用百度帐号登录

只需两步,快速登录

搜索
查看: 1088|回复: 0

kangle的删除Accept-Encoding头(内容过滤要选上)有什么用 为什么会提高缓存命中率

[复制链接]
 成长值: 26015

签到天数: 3250 天

[LV.Master]伴坛终老

发表于 2017/12/13 00:03 | 显示全部楼层 |阅读模式 |Google Chrome 62.0.3202.94|Windows 10
天涯海角搜一下: 百度 谷歌 360 搜狗 有道 雅虎 必应 即刻
这个3.5.12新版和旧版有点不一样。
新版考虑了accept-encoding
国为要支持br压缩。
如果不同的accept-encoding是不同的缓存的。所以导致了一个命中率问题,mp4会默认发送请求Accept-Encoding: identity;q=1, *;q=0,因为新版的identity是不缓存的(3.5.12.6修正identity缓存问题)
QQ图片20171213000221.png

2.png
虽然是同一个url,但accept-encoding不同,他们并不能共用。
kangle的删除Accept-Encoding头(内容过滤要选上)删除的是使用CDN下收到从源服务器发送上来的,是删除“Vary: Accept-Encoding”,源服务器输出的,告诉浏览器和kangle CDN服务器支持不同缓存的这个源站输出的回应头部。
但是用户端浏览器直接请求kangle CDN节点的删除不了
并且其他web server也是这样的逻辑
例如浏览器默认请求accept-encoding:gzip, deflate, br

嗯,正常情况下多个不同的浏览器请求,会产生五份缓存文件
不过age输出的时间都一样(新版已修复,不同缓存输出age独立),但是空间占用了五份大小容量  gzip、deflate、compress、br、identity
如果浏览器请求的Accept-Encoding值为空或者其它任意数值内容,默认输出identity的那一份缓存文件
测试方法,分别修改Accept-Encoding的值
  1. wget --header="Accept-Encoding: gzip" -S http://ip/404.png
复制代码



删除Accept-Encoding头(内容过滤要选上)这个选项已经废弃了,因为要考虑不同的缓存
如果你要精准删除从CDN节点访问源服务器的头部,那么就需要去请求控制进行删除
用file_ext匹配模块匹配格式和remove_header标记模块,可以完整删除回源的头部信息,可以提供源服务器到节点的命中率,当然这个方法没法控制CDN节点服务器收到浏览器请求导致的多份缓存,看下方介绍。
1.jpg
attr填写
  1. accept-encoding
复制代码

val(regex)直接留空


可以直接用这个模块来控制节点多份缓存问题:http://bbs.itzmx.com/thread-20181-1-1.html

2019年12月28日补充:
目前新版本remove_header模块,支持删除浏览器请求CDN的Accept-Encoding值,直接删除,让其只缓存一份,可提高命中率
所以根据你的需要来进行是否删除。

[发帖际遇]: 小樱 发帖时在路边捡到 3 樱币,偷偷放进了口袋. 幸运榜 / 衰神榜
欢迎光临IT技术交流论坛:http://bbs.itzmx.com/
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册论坛 新浪微博账号登陆用百度帐号登录

本版积分规则

手机版|Archiver|Mail me|网站地图|IT技术交流论坛 ( 闽ICP备13013206号-7 )

GMT+8, 2020/11/26 02:55 , Processed in 0.152146 second(s), 23 queries , MemCache On.

Powered by itzmx! X3.4

© 2011- sakura

快速回复 返回顶部 返回列表