我有一个服务器configuration为代理通过设置:
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";
尽pipe如此,当我启动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
nginx.conf的第62行只是http {}部分的结尾,所以我认为这是抱怨我试图重写的“默认”。
我不知道如何禁用这个代理configuration,似乎是重复我设置的显式configuration。 有没有办法来覆盖/删除该默认代理configuration?
原来问题是/var/lib/nginx/proxy是proxy_temp_path 。 通常情况下,nginx将下载到这个临时path,然后在完成下载后将文件移动到真正的caching目录。
我们必须有很多事情没有完成下载,或者从来没有把它放到主caching中,所以磁盘已经满了。
在这种情况下,解决scheme是closurestemp_path(在nginx 1.7.10或更高版本上的proxy_cache_path指令中使用use_temp_path=off参数)。