今天闲得无聊,在反代的nginx前端上给location中加上了句
Expires 30d;
(类型有JPG\GIF\HTML\CSS等)
意思是缓存30天,也就是30天内不再从服务器拉取,减轻服务器负担,算是优化吧。
一天过去了,我刚刚突然想到,我有个重要的HTML是经常更新的。那现在怎么办呢?是不是今天我改了之后,来过的访客,访问过那个HMTL的人,30天内就收不到更新了呢?除了改HTML文件名以外没其他办法了吗?(问题在于,这个HTML也是通过CSS调用加载的,可是CSS也被缓存30D了啊)
如果我用purge命令清理掉这个html的反代缓存是不是也不行呢?(因为我觉得修改增加Expires 30d;之后浏览过的访客的客户端,30天内不会再去访问我的HTML了吧,感觉和我是否服务器上purge过没太大关系了啊,没救了吗?)
吴彦祖们,这些浏览过Expires 30d;的访客30天内是就没救了吗?
网友回复:
字太多了,我不喜欢看,楼下解答
网友回复:
location = 某html位置
写掉过期
上述配置优先级高于 location /
网友回复:
iks 发表于 2020-8-13 01:00
location = 某html位置
写掉过期
我已经把
Expires 30d;去掉了,加#了。可我想救回今天30天的访客啊。他们的机制是不会再去更新了吗?
就算我把
location = 某html位置
写掉过期
这些访客也无法得知吧?除非30天后这样吧?
网友回复:
squalll 发表于 2020-8-13 01:03
我已经把
Expires 30d;去掉了,加#了。可我想救回今天30天的访客啊。他们的机制是不会再去更新了吗?
就 …
浏览器会查询服务器是否有新版本,如果服务器没有改变,就不拉取新数据,如果服务器有新版本,本地保存的版本就会过期
你设置的30天过期,无论服务器是否有新版本都强制拉取新数据
网友回复:
By小酷 发表于 2020-8-13 01:06
浏览器会查询服务器是否有新版本,如果服务器没有改变,就不拉取新数据,如果服务器有新版本,本地保存的 …
吓死我了。谢谢大佬
我麻烦你还有2个问题。
1.您是说,我的访客问题不是问题,只要我更新就行了,对吧?
2.按你说的,Expires 30d;意思是指,没有更新的情况下,就不会去拉取数据,但是有更新了,Expires 30d;就失效对吗?。那我如果加回去Expires 30d;也是可以的了?(因为我服务器一但更新,他们也就更新了)。那我加回去会更好吧?(我的原理是,能优化,那很好,如果不能优化30D,宁愿不优化也不能让访客不更新)