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番目となる。
そして、その中にキャッシュファイルが保存される。
これを削除することによりキャッシュが更新される。