次の設定でプロキシするようにサーバーを構成しています。
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";
それにもかかわらず、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 {}セクションの終わりにすぎないので、これはオーバーライドしようとしている「デフォルト」について不平を言っていると思います。
設定した明示的な設定を複製しているように見えるこのプロキシ設定を無効にする方法がわかりません。そのデフォルトのプロキシ構成を上書き/削除する方法はありますか?
問題は、/var/lib/nginx/proxy
がproxy_temp_path
であることが判明しました。通常、nginxはこの一時パスにダウンロードし、ダウンロードが完了すると、ファイルをrealキャッシュディレクトリに移動します。 。
ダウンロードが完了しなかった、またはメインキャッシュに戻らなかったために、ディスクがいっぱいになったことがたくさんあったに違いありません。
この場合の解決策は、temp_pathの使用をオフにすることでした(nginx1.7.10以降のuse_temp_path=off
ディレクティブのproxy_cache_path
パラメーターを使用)。