Nginxのリバースプロキシのキャッシュを個別で削除する方法

nginxにngx_cache_purge モジュールを組み込んでない場合など個別にキャッシュを削除したいことが出てくるので忘れないようにメモ。

# echo -n "http://example.com/" | md5sum

a6bf1757fff057f266b697df9cf176fd

上記でキャッシュファイル名が取得できる
nginxで設定してるキャッシュのパスでファイルを検索しそれを削除

# find /var/cache/nginx/キャッシュディレクトリ -name a6bf1757fff057f266b697df9cf176fd

/var/cache/nginx/proxy_cache/d/6f/a6bf1757fff057f266b697df9cf176fd

といった感じになる。
階層はどのように決定されているかというと
nginx.confで

proxy_cache_path /var/cache/nginx/proxy_cache levels=1:2 keys_zone=example_cache:30m inactive=1h max_size=1000m;

みたいな感じで設定しているとして
/var/cache/nginx/proxy_cacheproxy_cache以降のディレクトリは
levelsの部分でディレクトリの階層を決定している。
1はキャシュファイル名の末尾のdの1文字
6fは末尾から3番目、2番目となる。
そして、その中にキャッシュファイルが保存される。
これを削除することによりキャッシュが更新される。