Nginx 不支持 proxy_cache_revalidate 指令,缓存校验依赖后端 ETag/Last-Modified 响应头、Cache-Control 策略及 proxy_cache_lock、proxy_cache_use_stale、proxy_cache_background_update 等标准配置协同实现。

Nginx 中没有 proxy_cache_revalidate 这个配置指令——它不是官方支持的语法,所有稳定版 Nginx(截至 2026 年)的文档、源码和发行包中均未定义该指令。所谓“配置定时更新校验”,是对 HTTP 缓存机制与 Nginx 行为的常见误解。
真正实现缓存内容在过期后自动校验更新的,是 Nginx 内置的标准协商缓存逻辑,它完全依赖后端响应头与合理缓存策略的配合,无需任何虚构开关。
你需要关注的是这三件事:
后端必须返回可靠的
ETag或Last-Modified
例如:ETag: "a1b2c3d4"(带英文双引号,强校验),且每次资源内容变化时值必须不同。不能用时间戳、ID 或固定字符串。后端需明确声明缓存策略
推荐使用Cache-Control: public, s-maxage=3600,让 Nginx 知道可缓存 1 小时;若无此头,Nginx 会退而使用proxy_cache_valid设置的兜底有效期。-
Nginx 需启用基础缓存并防止并发击穿
CPA Update - Secure CLI Proxy API Maintenance下载安全更新和维护 CLI Proxy API(CPA)部署与配置。用于 CPA 镜像升级、配置变更、认证目录兼容修复、上线验证与回滚。适用于用户提到“CPA 更新/升级/配置改了/容器重建/回滚”等场景。
proxy_cache_lock on; proxy_cache_use_stale updating; proxy_cache_background_update on;
这些配置能让缓存过期后,仅一个请求发起
If-None-Match校验,其余请求直接返回旧内容,后台静默刷新。
验证是否真在“校验更新”:
看 $upstream_cache_status 日志字段:
-
HIT:缓存命中,未回源 -
MISS:首次缓存,拉取全量 -
STALE:正在后台校验,返回旧内容 -
REVALIDATED:缓存过期后成功收到304 Not Modified,复用了本地内容
用 curl -I 观察响应:缓存过期后再次请求,若返回 304 且不含 Content-Length 和响应体,说明校验生效。
不复杂但容易忽略

















