Nginx全站缓存需在http块顶层用proxy_cache_path定义,必须包含绝对路径、levels、keys_zone和max_size四要素,并确保权限正确、语法无误后重启生效。

直接在 http 块中用 proxy_cache_path 指令就能定义全站通用的磁盘缓存空间,这是 Nginx 缓存机制的起点,关键在于路径、内存区、清理策略三者配齐,且位置必须正确。
必须放在 http 块顶层
proxy_cache_path 只能在 http 上下文中使用,不能嵌套在 server 或 location 里。否则 Nginx 启动会报错。
- 确保它写在
http { ... }大括号内部,和其他全局配置(如include mime.types;)同级 - 一个
http块可定义多个缓存路径,但每个keys_zone名称必须唯一
核心参数要写全
最简可用配置需包含四个要素:存储路径、目录层级、共享内存区、磁盘上限。
阿里百炼大模型平台多人共享账号用量统计代理服务。解决公司共用账号时无法区分个人用量的问题。适用场景:1)部署用量统计代理;2)统计多人Token用量和调用次数;3)管理大模型API调用配额。
-
路径:指定绝对路径,如
/var/cache/nginx/proxy_cache;需提前mkdir -p并赋予 Nginx 工作用户(如www-data或nginx)读写权限 -
levels:推荐
levels=1:2,生成两级子目录(如a/3f/...),避免单目录文件爆炸影响性能 -
keys_zone:格式为
name:size,如my_cache:10m;这块内存不存响应体,只存 key 和元数据,10MB 约支持 8 万个缓存项 -
max_size:硬性磁盘限额,如
max_size=2g;超限时 Nginx 自动按 LRU 清理最久未用的缓存文件
建议加上自动清理与性能优化项
仅靠 max_size 不够稳妥,搭配 inactive 和 use_temp_path 能更可控。
-
inactive=60m:60 分钟内未被访问的缓存项,无论是否过期,都会被后台进程主动删除 -
use_temp_path=off:禁用临时路径,让缓存文件直接落盘到目标目录,减少一次拷贝,提升写入效率 - 可选加
loader_files=200 loader_sleep=50ms loader_threshold=300ms控制缓存预加载行为(适合大缓存场景)
启用前别忘了验证路径和权限
配置写完不能直接 reload,得先检查实际效果。
- 执行
sudo nginx -t确保语法无误 - 手动创建缓存目录并赋权:
sudo mkdir -p /var/cache/nginx/proxy_cache && sudo chown nginx:nginx /var/cache/nginx/proxy_cache - 重启后查看目录结构:
ls /var/cache/nginx/proxy_cache应为空或已有自动生成的子目录

















