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.cngx_http_file_cache_delete()で発生している。nginxのキャッシュマネージャプロセスが期限切れのキャッシュファイルを監視していて、proxy_cache_pathinactiveに設定された期限で、ファイルを消そうとしているようだ。

原因は、nginxのメモリに残っているキャッシュのメタ情報が利用されるから、だと思われる。自分にとってはクリティカルなエラーではない、と判断して無視している。しかし、気持ち悪い…。