curl -sI https://www.example.com/ | grep -i cache-control curl -sI https://www.example.com/ | grep -i age # Age 接近 86400 说明边缘还是旧时长
源站把页面缓存时间改成了五分钟,CDN 上还是按一天算,改完一小时边缘节点才慢慢更新过来,中间一直发旧版本。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。
原因不复杂,边缘缓存时长按面板里的规则计算,源站返回的响应头被直接忽略掉,两边配置写的根本不是同一个值,改哪一边都不算数。
这次卡住的地方就在「CDN 与源站缓存不一致」这一环,单独把它拎出来验证,别和其他改动混在同一次发布里。改完隔一天再看一次,当场正常不代表能稳住。
测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。
处理上按这个顺序:先确认这家 CDN 到底遵不遵循源站返回的缓存头规则;两边统一以源站返回的 max-age 为准,别各写一套缓存规则;改完之后看一下响应头里 Age 和 Cache-Control 这两个值对不对得上。
改完只确认一件事:响应头里的 Age 跟源站的 max-age 基本能够对得上,改动十分钟内就生效。
