合理设置 proxy_cache_min_uses 可减少 ssd 磨损,关键在于过滤低频无效请求(如埋点、爬虫、调试路径),分层配置值并配合 proxy_cache_lock 防写放大,同时监控小文件增长等指标验证效果。

直接设高值不能保护 SSD,关键在于减少无效缓存写入次数。proxy_cache_min_uses 的作用是让低频请求“不落盘”,从而降低磁盘 I/O 频次和小文件数量——这对边缘节点上容量有限、擦写次数受限的 SSD 尤其重要。
哪些请求最伤 SSD?
真正加速 SSD 磨损的是大量短命、单次、不可复用的小响应写入,比如:
- 带毫秒级时间戳的埋点(/log?ts=1746216840123&r=7f9a)
- 爬虫扫描的 404 路径(/wp-config.php、/adminer.php)
- 前端调试拼错的资源路径(/static/js/app.v2.abc123.js)
- 未登录用户访问的权限校验接口(/api/user/profile?uid=999999)
合理设置 min_uses 值
不是越大越好,而是按路径特征分层控制:
安全更新和维护 CLI Proxy API(CPA)部署与配置。用于 CPA 镜像升级、配置变更、认证目录兼容修复、上线验证与回滚。适用于用户提到“CPA 更新/升级/配置改了/容器重建/回滚”等场景。
- 静态资源(.js/.css/.png/.woff2):设为 2 或 3。真实用户二次加载概率高,能过滤掉约 60% 的爬虫试探和构建预览请求
- 首页 HTML、公共配置接口(/api/config):保持 1。天然高复用,早缓存早受益
- 含随机参数的上报类路径(/log、/track、/beacon):不依赖 min_uses,改用 proxy_no_cache 1 或 proxy_cache_bypass $arg_r 直接跳过整个缓存流程
- 4xx/5xx 响应路径:通过 proxy_cache_valid 404 1s 等限制其缓存时间,避免错误响应长期占位
必须搭配 proxy_cache_lock 才防写放大
只设 proxy_cache_min_uses 2,前两次请求仍会并发回源、各自尝试写缓存(即使失败),造成双倍 I/O。加锁后:
- 第一次请求触发回源 + 加锁
- 第二次同 key 请求等待锁释放(默认 5 秒),不发新请求
- 锁释放时,响应写入缓存,第二次请求顺带获取结果 → 自然满足 min_uses=2 条件
- 后续请求全部 HIT,零新增写入
验证是否真在减少 SSD 写入
不要只看命中率,重点观察三类指标:
- 缓存目录小文件增长速度:find /var/cache/nginx/edge -type f -mmin -60 | wc -l(过去 1 小时新建文件数)
- keys_zone 内存占用稳定性:nginx -T | grep "keys_zone" && ss -s | grep "memory"
- 日志中 MISS 但无 EXPIRED/STALE 的比例:若大量 MISS 且从不转为 HIT,说明 min_uses 在起效(请求没达阈值,压根没写)










