建站实践

Nginx 静态资源缓存配置:从浏览器到 CDN 的分层思路

Nginx 静态资源缓存配置:从浏览器到 CDN 的分层思路

缓存配置的目标是两头兼得:静态资源尽量久缓存,更新又能立即生效。

一、分层模型

  • 浏览器层:靠 Cache-Control 的 max-age,配好了重复访问零请求。
  • 服务器层:Nginx 的 expires 与 etag/last-modified,命中则 304。
  • CDN 层:边缘节点缓存,规则里注意”哪些路径缓存多久”。

二、静态资源:久缓存 + 指纹文件名

图片字体设置较长 max-age 没问题;CSS/JS 想久缓存,前提是文件名或查询串带指纹(如 ?ver=文件修改时间),内容一变 URL 就变,旧缓存自动失效。

三、HTML:短缓存或不缓存

HTML 里引用着带指纹的资源地址,它本身必须保持新鲜,设 no-cache 或几秒的短缓存,让资源 URL 的变化能尽快传导下去。

四、排查套路

看到旧资源别急着清缓存,先 curl 看响应头:Cache-Control 对不对、是 200 还是 304、X-Cache 命中没命中,一层层定位到问题在哪一层,比无头苍蝇式硬刷新有效得多。

· 写作者

记录代码、生活与思考。

文章来源:本站原创 本页链接:https://blog.liuchun.cn/tech-notes/web-practice/282/ 版权声明:内容采用 CC BY-NC-SA 4.0,转载请注明出处,特别声明除外。
互动

写下你的想法

友善交流,邮箱不会公开。