nginxのキャッシュを手動で削除したときのcritなエラー
nginx(ver.1.21.5現在)には手動でキャッシュをパージする仕組みがない。したがって、条件に一致するキャッシュファイルをディスクから削除するスクリプトを自分で作って利用している。
1つ問題があって、nginxのerror.logに、つぎのようなクリティカル(crit)エラーが出力される。
[crit] XXXX#XXXX: unlink() "/var/cache/nginx/x/xx/98a84864b352091525e97afa382cff73" failed (2: No such file or directory)
このエラーはsrc/http/ngx_http_file_cache.c
のngx_http_file_cache_delete()
で発生している。nginxのキャッシュマネージャプロセスが期限切れのキャッシュファイルを監視していて、proxy_cache_path
のinactive
に設定された期限で、ファイルを消そうとしているようだ。
原因は、nginxのメモリに残っているキャッシュのメタ情報が利用されるから、だと思われる。自分にとってはクリティカルなエラーではない、と判断して無視している。しかし、気持ち悪い…。