macOS下Nginx无proxy_cache_max_size指令,缓存大小上限由proxy_cache_path中的max_size参数控制,如max_size=1g表示最多占用1GB磁盘空间,需设在http块内并确保路径权限正确。

在 macOS 下,Nginx 并没有 proxy_cache_max_size 这个配置项 —— 它是不存在的指令,属于常见误解。真正控制缓存磁盘空间上限的是 proxy_cache_path 中的 max_size 参数。
确认正确的配置位置
缓存大小限制必须写在 http 块内,且只能在 proxy_cache_path 指令中设置:
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=STATIC:10m inactive=24h max_size=1g;-
max_size=1g表示整个缓存区最多占用 1GB 磁盘空间 - 路径
/var/cache/nginx需提前创建并确保 Nginx 进程(通常是_www或nginx用户)有读写权限
max_size 的实际行为
该参数不是硬性截断开关,而是一种主动清理策略:
安装并运行 Aperture(Lightning Labs 的 L402 闪电反向代理),用于创建 L402 付费墙、配置付费 API 端点、为其他代理托管付费内容或测试 L402 认证流程。
- 当缓存总大小接近
max_size时,Nginx 会自动淘汰「最久未被访问」的缓存文件 - 淘汰依据是
inactive时间(例如inactive=24h),不是文件创建时间 - 不设
max_size时,缓存可能持续增长直至占满磁盘
macOS 特别注意事项
macOS 默认没有 /var/cache 目录,且 SIP 可能限制系统路径写入:
- 推荐改用用户可写路径,例如:
/usr/local/var/cache/nginx或~/Library/Caches/nginx - 创建目录后执行:
sudo chown -R $(whoami):staff /usr/local/var/cache/nginx - 启动前检查权限:
ls -ld /usr/local/var/cache/nginx应显示当前用户可写
验证缓存是否受控
启用后可通过两个方式确认效果:
- 查看缓存目录实时大小:
du -sh /usr/local/var/cache/nginx - 在响应头中添加调试标识:
add_header X-Cache-Status $upstream_cache_status;,观察是否出现HIT/MIS及缓存清理迹象

















