当前位置: 首页 > article >正文

CDN缓存404、403状态码

可以参考一下:浏览器缓存和 CDN 在前端的落地

事故记录:

  1. 前端发版时存在新旧两个容器,在资源替换的间隙,用户请求到的肯定是新容器的html文件,但是根据新容器的html向新静态资源发起请求,此时旧容器还没有完全被替换,在部分边缘节点中仍然存在旧容器,向新资源发起的请求到了旧容器内自然就失败了,返回404 not found。
    但是问题是:请求失败后静态资源返回404却被CDN缓存了,导致用户一直刷新,向新资源请求,哪怕节点已经被新容器替换了,CDN还是以为之前已经请求成功了,不会回源,一直返回缓存的404。

解决办法

  1. 采用灰度上线(根本解决)
  2. CDN清除缓存。(快速解决)
  3. 先上线静态资源,再把HTML上线。以及 针对非正常的状态码(HTTP Status 200)应该设置不缓存。
  4. 针对本地缓存的静态资源通过完全更换打包资源名称,或者更新nextjs的静态资源前缀,修改为一个OSS链接,然后将静态资源手动部署到OSS上,新上线之后的新版本就直接走OSS链接,之前的404资源失效。

http://www.kler.cn/a/235055.html

相关文章:

  • 12.31【Linux】shell脚本【运行方式,修改环境变量,数组】思维导图 内附练习
  • 在C#中,委托的协变和逆变在底层如何实现
  • leetcode 3219. 切蛋糕的最小总开销 II
  • 【LC】3083. 字符串及其反转中是否存在同一子字符串
  • 【数据仓库】spark大数据处理框架
  • 015-spring-动态原理、AOP的xml和注解方式
  • 分布式缓存
  • Qt中程序发布及常见问题
  • 解释Java中的并发集合类,比如ConcurrentHashMap和CopyOnWriteArrayList
  • 【原创 附源码】Flutter安卓及iOS海外登录--Facebook登录最详细流程
  • unity学习案例总结
  • JDK、JRE、JVM三者关系详解
  • 案例:CentOS8 在 MySQL8.0 实现半同步复制
  • c语言求多边形面积
  • labelImg和labelme区别
  • Win10截图的四种方式
  • Java基础:值传递和引用传递
  • 【C语言】C的整理记录
  • springboot/ssm大学生选修选课系统高校选课排课成绩管理系统Java系统
  • react中hook封装一个table组件 与 useColumns组件
  • Nginx报错合集(502 Bad Gateway,504 Gateway nginx/1.18.0 (Ubuntu) 等等报错)
  • 第三节 zookeeper基础应用与实战2
  • springboot181基于springboot的乐享田园系统
  • 【AIGC风格prompt深度指南】掌握绘画风格关键词,实现艺术模仿的革新实践
  • AutoSAR(基础入门篇)7.3-使用DEV配置SWCRTE
  • Visual Studio使用Git忽略不想上传到远程仓库的文件