必须在http块顶层用proxy_cache_path定义全局缓存,含绝对路径、levels、keys_zone、max_size四要素;推荐加inactive和use_temp_path=off;可定义多个缓存区,keys_zone名须唯一且大小写敏感。

要在 Nginx 的 http 块顶层定义全局网页磁盘缓存,核心就是正确使用 proxy_cache_path 指令——它不是可选配置,而是整个反向代理缓存体系的地基,缺了就无法启用任何缓存行为。
必须放在 http 块最外层
该指令只能出现在 http { ... } 大括号内部,且需与其他顶层配置(如 include mime.types;、upstream)同级。不能嵌套在 server 或 location 里,否则 Nginx 启动直接报错。
- ✅ 正确位置示例:
http {<br> proxy_cache_path /var/cache/nginx/proxy_cache levels=1:2 keys_zone=web_cache:10m inactive=60m max_size=2g;<br> include mime.types;<br> # 其他配置...<br>} - ❌ 错误写法:
server { location / { proxy_cache_path ... } }—— 语法非法,Nginx 拒绝加载配置
四个核心参数一个都不能少
最简可用配置必须包含以下四项,缺一不可:
安全更新和维护 CLI Proxy API(CPA)部署与配置。用于 CPA 镜像升级、配置变更、认证目录兼容修复、上线验证与回滚。适用于用户提到“CPA 更新/升级/配置改了/容器重建/回滚”等场景。
-
绝对路径:如
/var/cache/nginx/proxy_cache,需提前用mkdir -p创建,并确保 Nginx 工作用户(如www-data或nginx)有读写权限 -
levels:推荐
levels=1:2,生成两级子目录(如a/3f/),避免单目录文件爆炸,提升文件系统性能 -
keys_zone:格式为
名称:大小,如web_cache:10m;这块内存只存 key 和元数据(不存响应体),10MB 约支持 8 万个缓存项 -
max_size:硬性磁盘上限,如
max_size=2g;超出后 Nginx 自动按 LRU 清理最久未用文件
建议加上的优化参数
仅靠基础四要素能跑通,但加上以下两项更稳妥、更高效:
- inactive=60m:60 分钟内未被访问的缓存项,无论是否过期,都会被后台进程主动清理,防止无效缓存堆积
- use_temp_path=off:禁用临时路径,让缓存文件直接写入目标目录,减少一次拷贝,降低 IO 开销,尤其对高并发写入场景明显
多缓存区与命名规范
一个 http 块可以定义多个 proxy_cache_path,适用于不同业务类型(如静态资源、API 接口分开缓存):
- 每个
keys_zone名称必须唯一,且严格区分大小写、不含空格或特殊字符 - 后续在
location中启用缓存时,proxy_cache web_cache必须与这里定义的web_cache完全一致 - 例如:
proxy_cache_path ... keys_zone=static_files:20m ...;和proxy_cache static_files;需一一对应










