我有一个服务器配置为通过设置代理:
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{} 部分的结尾,所以我认为这是在抱怨我试图覆盖的“默认”。
我不知道如何禁用这个代理配置,它似乎复制了我设置的显式配置。有没有办法覆盖/删除该默认代理配置?
原来的问题是,/var/lib/nginx/proxy
是proxy_temp_path
。通常 nginx 会下载到这个临时路径,然后在下载完成后将文件移动到真正的缓存目录。
我们一定有很多东西没有完成下载,或者从来没有进入主缓存,所以磁盘填满了。
在这种情况下的解决方案是关闭 temp_path 的使用(使用nginx 1.7.10 或更高版本use_temp_path=off
上的proxy_cache_path
指令上的参数)。
归档时间: |
|
查看次数: |
3981 次 |
最近记录: |