proxy_cache_path 必须置于 http 块中,通过 levels 定义多级目录结构(如 levels=1:2),keys_zone 设共享内存元数据区(如 my_cache:10m),inactive 与 max_size 共同管控缓存生命周期和磁盘用量,路径需确保 nginx 进程可写。

proxy_cache_path 是 Nginx 实现反向代理缓存的关键指令,它不只定义缓存存哪儿,更决定缓存文件如何组织、清理和高效索引。配置得当,能显著提升命中率与 I/O 性能;配错层级或路径权限,反而导致缓存失效或写入失败。
明确缓存根路径与目录结构逻辑
该指令必须放在 http 块中,不能在 server 或 location 内直接使用。核心是理解 levels 参数如何生成多级子目录:
-
levels=1:2表示两级目录,第一级取 key 的最后 1 位字符,第二级取接下来的 2 位字符 - 示例:MD5 值
43c8233266edce38c2c9af0694e2107d→ 最后 3 位是07d→ 第一级为d,第二级为07→ 路径为/usr/local/proxy_cache/d/07/... -
levels=2:2:2则取最后 6 位,分三段各 2 字符:7d/02/10→ 对应路径/usr/local/proxy_cache/7d/02/10/...
合理设置 keys_zone 与内存元数据区keys_zone 不是磁盘空间,而是共享内存区域,用于快速查找缓存项:
- 名称(如
my_cache)需全局唯一,后续proxy_cache my_cache才能引用 - 大小按预期并发缓存项估算:每条缓存元数据约 512 字节,1MB 可存约 2000 个 key
- 若设为
my_cache:10m,Nginx 启动时就分配 10MB 共享内存,不足会导致缓存拒绝写入
控制缓存生命周期与磁盘用量inactive 和 max_size 共同管理磁盘健康:
安全更新和维护 CLI Proxy API(CPA)部署与配置。用于 CPA 镜像升级、配置变更、认证目录兼容修复、上线验证与回滚。适用于用户提到“CPA 更新/升级/配置改了/容器重建/回滚”等场景。
-
inactive=60m表示缓存项 60 分钟内未被访问,就标记为可清理(实际删除由后台进程异步执行) -
max_size=5g是硬上限,超出后 Nginx 会按 LRU 清理最久未用项,但不会主动删过期项(过期由proxy_cache_valid控制) - 注意:
max_size是整个缓存路径的总容量,不是单个 zone 的限制
确保系统权限与路径可用性
- 指定的
path目录必须由 Nginx worker 进程用户(通常是nginx或www-data)可写 - 建议提前创建并授权:
mkdir -p /usr/local/proxy_cache && chown nginx:nginx /usr/local/proxy_cache - 避免挂载在 tmpfs 或空间受限分区;SSD 更适合高频读写的缓存场景
不复杂但容易忽略。










