后台修改数据后前端不更新,抓包发现接口返回被节点缓存了十分钟。乍看像缓存或者权限的锅,追下去往往不是。

# 规则顺序
1. /api/* 不缓存
2. *.json 不缓存
3. *.css|js|jpg 缓存 7 天

追下去是这么回事:缓存规则按后缀匹配,接口地址正好以可缓存后缀结尾,规则优先级也没排序。

「缓存规则误伤」这类改动最怕改一半,回滚脚本先准备好,再动生产。验证用真实数据走一遍,测试数据太干净,边界情况根本碰不到。

能分两步做的操作就别合成一步,中间看一眼返回值,出问题好判断。报错里带路径的,先去看那个路径在不在、权限对不对。

同一份配置存在多处的,先确认改的是被加载的那一份。新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。

备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。

具体做法是,把接口规则放到最前面并设为不缓存;按路径而不是后缀判断;刷新受影响地址。

验收就看一点,接口实时返回,静态资源仍按长缓存命中。

作者 9823189