设为首页收藏本站

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

 找回密码
 注册论坛

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

用百度帐号登录

只需两步,快速登录

搜索
查看: 2838|回复: 6

kangle内存缓存问题

[复制链接]

签到天数: 66 天

[LV.6]常住居民II

发表于 2020/5/27 21:54 | 显示全部楼层 |阅读模式 |Safari 13.1|iPhone iOS 13.4.1
天涯海角搜一下: 百度 谷歌 360 搜狗 有道 雅虎 必应 即刻
网站是通过匹配host 标记host进行的方法反向代理

源站宝塔面板,已知宝塔nginx默认配置了Max-age,默认有缓存时间

问题一:
Cache-Control: max-age=43200
Date: Wed, 27 May 2020 13:27:27 GMT
ETag: W/"5e23c947-21ad"
Expires: Tue, 26 May 2020 02:20:54 GMT

这样看来缓存是每12小时更新最新的,浏览器的缓存时间是应该过期了才对,但是过期时间一直显示最初缓存的那个到期时间(只开了内存缓存,磁盘缓存设置0)

问题二:回应控制,匹配了缓存的文件,只勾了静态化,max-age时间改为其它的,浏览器显示的依旧是(43200 ,kangle缓存和浏览器都清理过缓存的,这个时间是宝塔上面的nginx配置文件的时间)
欢迎光临IT技术交流论坛:http://bbs.itzmx.com/
回复

使用道具 举报

签到天数: 66 天

[LV.6]常住居民II

 楼主| 发表于 2020/5/27 22:45 | 显示全部楼层 |Safari 13.1|iPhone iOS 13.4.1
请求控制只勾flag的x-cache,这会不会是显示问题,其实是缓存更新了,显示源站到代理端的时间,并不是显示本地浏览器的缓存到期时间?
欢迎光临IT技术交流论坛:http://bbs.itzmx.com/
回复 支持 反对

使用道具 举报

 成长值: 252

签到天数: 4709 天

[LV.Master]伴坛终老

发表于 2020/5/27 23:52 | 显示全部楼层 |Google Chrome 81.0.4044.138|Windows 10
静态化是强制缓存,就算源站更新了文件,也要等待时间过了后才会更新。
不勾选的话遵守ETag缓存,ETag值变动,缓存则立即自动更新。
浏览器缓存是遵守ETag的,你可以看看浏览器响应是304还是memory cache之类的
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/ETag

在响应有ETag的情况,如果值没有变动,浏览器不会进行更新缓存

欢迎光临IT技术交流论坛:http://bbs.itzmx.com/
回复 支持 反对

使用道具 举报

签到天数: 66 天

[LV.6]常住居民II

 楼主| 发表于 2020/5/28 06:29 | 显示全部楼层 |Safari 13.1|iPhone iOS 13.4.1
小樱 发表于 2020/5/27 23:52
静态化是强制缓存,就算源站更新了文件,也要等待时间过了后才会更新。
不勾选的话遵守ETag缓存,ETag值变 ...

大概明白了,回应控制这里其实就是cdn对文件的缓存时间。
因为回应控制设置max-cache(我这里设置的是一年)的时间大于宝塔的配置文件时间(120s)
这样就会导致expires: Wed, 27 May 2020 22:01:41 GMT显示的浏览器过期时间比Date还要早(这里是源站对浏览器的过期时间,把反向代理端当作浏览器了,实际的更新时间还是date加上Max-age=120)
cache-control: max-age=120
content-type: text/css
date: Wed, 27 May 2020 22:04:25 GMT
etag: W/"5e23c947-1784"
expires: Wed, 27 May 2020 22:01:41 GMT

结论,当源站是宝塔时,反向代理端根本不用在回应控制设置缓存规则了,默认跟随站点的配置文件。当回应控制时间设置大于宝塔的缓存时间,就会出现以上情况
欢迎光临IT技术交流论坛:http://bbs.itzmx.com/
回复 支持 反对

使用道具 举报

 成长值: 252

签到天数: 4709 天

[LV.Master]伴坛终老

发表于 2020/5/28 06:44 | 显示全部楼层 |Google Chrome 81.0.4044.138|Windows 10
天子 发表于 2020/5/28 06:29
大概明白了,回应控制这里其实就是cdn对文件的缓存时间。
因为回应控制设置max-cache(我这里设置的是一 ...

是的,不设置的情况,会遵守源站输出进行缓存。

欢迎光临IT技术交流论坛:http://bbs.itzmx.com/
回复 支持 反对

使用道具 举报

签到天数: 66 天

[LV.6]常住居民II

 楼主| 发表于 2020/5/29 16:50 | 显示全部楼层 |Safari 13.1|iPhone iOS 13.4.1
小樱 发表于 2020/5/28 06:44
是的,不设置的情况,会遵守源站输出进行缓存。

缓存了,我的是通过“一步“”反向代理,如果想在kangle写对浏览器缓存规则只能在虚似空间创建xml文件,Max-age。我的这种反向代理可以实现写浏览器缓存时间不,
欢迎光临IT技术交流论坛:http://bbs.itzmx.com/
回复 支持 反对

使用道具 举报

 成长值: 252

签到天数: 4709 天

[LV.Master]伴坛终老

发表于 2020/5/29 18:27 | 显示全部楼层 |Google Chrome 83.0.4103.61|Windows 10
天子 发表于 2020/5/29 16:50
缓存了,我的是通过“一步“”反向代理,如果想在kangle写对浏览器缓存规则只能在虚似空间创建xml文件,M ...

https://blog.csdn.net/xiaozhuo_tang/article/details/78300855
你要控制浏览器强制缓存时间的话,可以参考下这篇文章试试,比如文章介绍的,增加一个Cache-control: only-if-cached 响应头部
欢迎光临IT技术交流论坛:http://bbs.itzmx.com/
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024/11/25 12:39 , Processed in 0.185439 second(s), 21 queries , MemCache On.

Powered by itzmx! X3.4

© 2011- sakura

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