技术咨询专线

137-9839-1694

后台改了价格、撤了活动页,前台刷新还是老内容,多半是缓存没清干净。缓存分浏览器、CDN边缘、源站代理、程序四层,本文给出分层排查顺序、三种刷新粒度的适用场景、缓存键与规则设置,以及刷新后仍不生效的五个常见原因。

后台改了前台不更新:CDN 缓存的四层排查与刷新策略(图1)

后台把价格改了、把下线的产品删了、把过期的活动横幅撤了,刷新前台还是原来那一版。很多人的下意识反应是“没保存成功”,于是再改一遍、再刷新,结果一样。这类问题在维护工单里占比不低,原因八成不在后台,而在缓存。

缓存麻烦的地方在于它有很多层。你清掉了其中一层,另外几层还各自存着一份旧副本。下面按“先分层、再验证、后设置”的顺序讲清楚,照着做基本能在十分钟内定位。

一、先把四层缓存分开看

1. 浏览器本地缓存。访客设备上存着旧版 HTML、图片、CSS,服务端改了,本地那份不会自动失效。

2. CDN 边缘节点缓存。各地节点各自保存一份副本,源站更新后节点要等 TTL 到期或人工刷新才会换。

3. 源站反向代理缓存。Nginx 的 proxy_cache、部分虚拟主机自带的页面缓存,都属于这一层。

4. 程序与数据层缓存。CMS 的模板编译缓存、查询缓存,以及 Redis、Memcached 这类对象缓存。

四层里,前两层出问题的概率远高于后两层。判断顺序也是这样:先在自己电脑上按 CTRL+F5 强制刷新,内容变了说明问题在浏览器,让访客清一下即可;强制刷新仍是旧内容,就往 CDN 那一层查。

二、三个动作快速确认是 CDN

1. 看响应头。命令行执行 curl -I 取首页响应头,看有没有 x-cache、cf-cache-status、x-cache-lookup、via、age 这类字段。出现 HIT 或 age 数值很大,说明命中的是缓存而不是源站。

2. 加随机参数访问。在地址后面加一个随机参数,比如 ?v=123456,再打开。带参数是新内容、不带参数是旧内容,基本可以确认是缓存导致,而且能进一步判断缓存键是否忽略了查询参数。

3. 换网络对比。手机流量和办公宽带分别访问同一页面。两边结果不一致,说明不同节点缓存状态不同,典型的节点未刷新,而不是程序问题。

三、刷新策略:三种粒度对应三种场景

1. URL 刷新,也就是单条刷新。改了某个产品页或某篇文章,只刷那一个地址。命中率高、对源站压力小,日常应该作为默认选择。

2. 目录刷新。栏目结构变了、列表页排序要更新、一批图片替换了,刷整个目录。要注意栏目列表页往往就是目录地址本身,别忘了把目录根地址也带上。

3. 全站刷新。改版上线、模板大改、全站换配色时才用。全站刷新会让所有请求同时回源,源站配置一般的会在几分钟内出现 502,务必挑访问低峰执行,并提前确认服务器能扛住。

经验上还有一步容易被忘:清完 CDN 要再清一次程序缓存,让源站重新生成 HTML。否则 CDN 回源拿到的还是程序缓存里的旧页面,刷新多少次结果都一样。

四、缓存键与规则:把不该缓存的排除掉

1. 动态页面排除。登录页、购物车、询盘提交后的结果页、带用户参数的页面不能缓存,否则可能把甲用户的信息展示给乙用户,属于安全问题而不只是显示问题。

2. HTML 与静态资源分开设 TTL。图片、CSS、JS 可以长缓存,三十天以上,靠文件名版本号更新;HTML 设短缓存,几分钟到几小时。混在一起设成一天,就会出现“样式改了、页面没变”的尴尬。

3. 按路径配置规则。常见做法:/uploads/ 与 /static/ 长缓存;.html 短缓存;后台路径直接回源不缓存;提交类接口一律不缓存。

4. 缓存键不要只用 URL。PC 与手机返回不同模板的站点,缓存键要带设备标识,否则手机访客会拿到 PC 版页面,排版直接崩。

5. 注意头部与 Cookie。有些站点按 Cookie 判断登录态,缓存时必须把 Cookie 纳入键或对该路径禁用缓存,不然会出现越权访问。

五、刷新了还是不生效的五个原因

1. 只刷了 HTML,没刷静态资源。样式改了但 CSS 文件名没变,节点继续返回旧 CSS,前台看起来“只改了一半”。

2. 存在两层加速。CDN 前面还有一层全站加速,或者主域名与静态域名各走一套 CDN,只刷了一层,另一层仍是旧内容,要逐层刷。

3. 源站自己缓存着。CDN 回源时拿到源站缓存里的旧页,无论刷多少次都一样。先在源站清程序缓存,再刷 CDN。

4. 浏览器 Service Worker 拦截。做过 PWA 的站点,Service Worker 会接管请求,普通强制刷新无效,需要在开发者工具里注销 SW 并清除存储。

5. 内容其实没写进数据库。这种情况少见但确实存在:编辑器超时、字段长度超限、提交被拦截,后台提示成功但数据没落库。用前台搜索或后台列表核对一下原文,能快速排除。

六、把刷新动作写进发布流程

1. 发布清单增加一步。发完文章顺手刷三个地址:文章页、所属栏目列表页、首页。三步一分钟,能省掉客户打电话来问“为什么看不到”。

2. 记住刷新额度。多数 CDN 服务商对每日刷新条数有限制,全站刷新尤其耗额度,别把全站刷新当成日常手段。

3. 关键页面加监控。首页和两三个核心产品页,每天定时抓取一次,与数据库内容比对,出现不一致就告警。这比等访客反馈要早得多。

4. 升级资源时改文件名。改 CSS、JS 时顺手在文件名或查询串里带版本号,长缓存就可以放心用,不必依赖刷新。

总结

前台不更新,按“浏览器、CDN 边缘、源站代理、程序缓存”四层顺序查,多数情况十分钟内能定位。真正需要长期做的,是把刷新动作固化进发布流程,而不是每次出问题再去翻 CDN 控制台。缓存本身不是坏事,配置得当能把服务器压力降下来、打开速度提上去,前提是规则清楚、刷新有据。

如果你们的站点也遇到后台改了前台不变,或者不确定缓存规则该怎么配,可以把域名发给我们看一下,我们按上面的顺序过一遍。锐客网技术支持电话:137-9839-1694。

ABOUT THE AUTHOR 锐客网内容组 · 小锐

十年一线建站与运维经验,写我们真正在项目里踩过的坑:怎么选型、怎么控成本、上线后怎么养。

聊聊你的项目

获取建站方案评估

想搭建或改版网站,却不确定做哪种站、大概多少钱、要多久?留下行业与需求,我们给出方案规划与报价参考。