前提
・nginxの設定中にふとキャッシュの挙動や設定が気になったので調べてみた
nginxキャッシュの挙動
・キャッシュされたレスポンスは一時ファイルに保存される
・一時ファイルはuser_temp_pathに保存される
・user_temp_pathの指定がない or onになっている場合はproxy_temp_pathに保存される
・proxy_temp_pathがoffの場合はキャッシュディレクトリに保存される
・すべてのアクティブなキーと値(多分キャッシュの?)はkeys_zoneで構成される共有メモリゾーンに格納される(1Mのゾーンには約8000個のキーを格納できる)
・inactiveで指定された時間内にアクセスされなかったキャッシュデータはキャッシュから削除される。inactiveはデフォルト10分。
nginx上のキャッシュを有効にしたい場合
・キャッシュを有効にしたいコンテキストでproxy_cache: oneにしてproxy_cache_pathを設定する
nginxのキャッシュ処理
・cache manager・・ファイルストレージがmax_sizeを超えてないかチェックして超えていた場合は最も使われてないキャッシュを削除する
・cache loader・・nginxが起動された際に1度だけ実行される。キャッシュデータのメタ情報を共有メモリ領域にロードする