可在Nginx中用add_header指令结合$upstream_cache_status变量,在响应头中添加X-Cache-Status字段(如HIT、MISS等),需先配置proxy_cache及相关参数,且仅对启用代理缓存的location生效。

可以在 Nginx 配置中使用 add_header 指令,结合内置变量 $upstream_cache_status,在响应头中显式添加缓存命中状态(如 HIT、MISS、EXPIRED 等),供前端开发者通过浏览器 DevTools 或接口调试工具快速判断请求是否命中缓存。
确认已启用代理缓存
只有配置并启用了 proxy_cache,$upstream_cache_status 才会有有效值。确保在 http 或 server 块中定义了缓存区,并在 location 中启用:
- 使用
proxy_cache_path定义缓存存储路径和参数 - 用
proxy_cache指定使用的缓存区名称 - 设置
proxy_cache_valid控制缓存有效期
在 location 块中添加响应头
在启用缓存的 location 块内,直接使用 add_header 输出缓存状态:
location /api/ {
proxy_pass http://backend;
proxy_cache my_cache;
proxy_cache_valid 200 5m;
<pre class="brush:php;toolbar:false;"># 关键:添加缓存状态头
add_header X-Cache-Status $upstream_cache_status;}
注意:add_header 默认不会继承父块配置,且仅对成功响应(2xx、3xx)生效;若需对所有响应(包括 4xx、5xx)也添加,需配合 always 参数:
前端设计与 UI/UX 全方位优化专家。覆盖视觉层次、排版系统、色彩理论、响应式布局、交互体验、动画动效、无障碍访问、性能优化八大维度,帮助开发者将普通页面升级为高品质产品级界面。前端设计与 UI/UX 全方位优化专家。覆盖视觉层次、排版系统、色彩理论、响应式布局、交互体验、动画动效、无障碍访问、性能优化八大维度,帮助开发者将普通页面升级为高品质产品级界面。
add_header X-Cache-Status $upstream_cache_status always;
理解常见缓存状态值含义
$upstream_cache_status 的典型取值及含义:
- HIT:请求命中本地缓存,直接返回,未转发到上游
- MISS:缓存未命中,请求被转发给上游,响应被缓存
- EXPIRED:缓存已过期,但仍在使用(stale),同时异步刷新
-
STALE:缓存过期且无新鲜响应可用,返回陈旧内容(需配置
proxy_cache_use_stale) -
BYPASS:因
proxy_cache_bypass规则跳过缓存 - REVALIDATED:使用 If-Modified-Since/If-None-Match 验证后确认未变更
前端调试时查看方式
前端可通过浏览器开发者工具的 Network 面板查看响应头:
- 发起请求后,点击对应请求 → Headers 标签页 → Response Headers 区域
- 查找
X-Cache-Status字段,例如:X-Cache-Status: HIT - 配合禁用浏览器缓存(DevTools → Network → Disable cache)、修改请求参数或清理 Nginx 缓存反复验证
不复杂但容易忽略的是:该变量只在启用 proxy_cache 且实际参与缓存流程时才有意义;静态文件服务(如 root + try_files)不走 proxy 流程,此变量为空,此时应改用 $sent_http_x_accel_expires 或自定义逻辑判断。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










