proxy_cache_min_uses 是缓存写入的热度门槛,决定同一缓存key响应体达到指定访问次数后才落盘;默认1,设为2则首次不写盘、第二次才写入,需配合proxy_cache_lock防并发回源。

proxy_cache_min_uses 的作用是控制“响应体是否写入缓存”,它不拦截请求、不跳过回源、也不影响缓存查找,只决定同一个缓存 key 的响应内容在达到指定访问次数后,才真正落盘并进入共享内存。
它不是开关,而是热度门槛
默认值为 1,意味着首次可缓存响应(如 200、302)就会被写入磁盘和 keys_zone;设为 2,则前一次访问仍回源、仍查缓存(若已有未过期副本仍可能 HIT),但响应体不落盘;第 2 次同 key 请求时,才触发写入,后续请求才能稳定 HIT。
安全更新和维护 CLI Proxy API(CPA)部署与配置。用于 CPA 镜像升级、配置变更、认证目录兼容修复、上线验证与回滚。适用于用户提到“CPA 更新/升级/配置改了/容器重建/回滚”等场景。
- 它过滤的是“低价值写入”,比如爬虫单次扫描、前端调试加载、带随机参数的埋点等——这些请求天然只来一次,设为 2 就自然跳过缓存写入
- 已存在的缓存项照常服务,哪怕该 URI 还没达到 min_uses 次数
- 计数基于 proxy_cache_key,不是原始 URL;key 若含 $args 或 $request_uri,极易发散,导致计数失效
必须配合 proxy_cache_lock 才真正生效
单独设 min_uses=2 只是“延后写”,不是“防并发”。若无锁机制,前两次请求可能同时回源、各自尝试写缓存,IO 和后端压力反而翻倍。
- 启用 proxy_cache_lock on 后:第 1 次请求回源 + 加锁,第 2 次请求等待锁释放,锁释放时统一写入一次,自然满足 min_uses=2
- 建议同步配置 proxy_cache_lock_timeout 5s,略大于后端平均响应时间
按路径语义分层配置才有效
全局统一设高值(如全站设为 5)容易误伤中频内容,造成持续回源。应结合资源复用规律,在 location 块中差异化设置:
- 静态资源(.js/.css/.png):设为 2~3,过滤爬虫、CI 预览、本地调试等噪声
- 首页 HTML、/api/config 等公共接口:保持 1,天然高复用,早缓存早受益
- 用户页(/user/123、/api/order?uid=456):设为 2,匹配真实回访节奏
- 带时间戳/随机串的上报接口(/log?t=xxx&r=yyy):不用 min_uses,直接用 proxy_no_cache 1 或 proxy_cache_bypass 跳出缓存流程










