/var/lib/nginx/proxy 从哪里来?

Ran*_*ick 3 nginx proxy cache

我有一个服务器配置为通过设置代理:

proxy_cache_path /var/lib/nginx/cache levels=1:2 keys_zone=backcache:8m max_size=20g inactive=7d;
proxy_cache_key "$scheme$request_method$host$request_uri$is_args$args";
Run Code Online (Sandbox Code Playgroud)

尽管如此,当我启动 nginx 时,我最终也得到了 /var/lib/nginx/proxy。两者都开始填满,最终硬盘驱动器填满。

如果我尝试让我的 proxy_cache_path 指向 /var/lib/nginx/proxy,我会收到错误消息:

nginx: [emerg] the same path name "/var/lib/nginx/proxy" used in /etc/nginx/conf.d/proxy.conf:1 and in /etc/nginx/nginx.conf:62
nginx: configuration file /etc/nginx/nginx.conf test failed
Run Code Online (Sandbox Code Playgroud)

nginx.conf 的第 62 行只是 http{} 部分的结尾,所以我认为这是在抱怨我试图覆盖的“默认”。

我不知道如何禁用这个代理配置,它似乎复制了我设置的显式配置。有没有办法覆盖/删除该默认代理配置?

Ran*_*ick 5

原来的问题是,/var/lib/nginx/proxyproxy_temp_path。通常 nginx 会下载到这个临时路径,然后在下载完成后将文件移动真正的缓存目录。

我们一定有很多东西没有完成下载,或者从来没有进入主缓存,所以磁盘填满了。

在这种情况下的解决方案是关闭 temp_path 的使用(使用nginx 1.7.10 或更高版本use_temp_path=off上的proxy_cache_path指令上的参数)。