初心者過ぎて題名が正しいのかも怪しいくらい。
そんな初心者がNginxでproxyキャッシュをしてみたいと思います!
設定内容
/etx/nginx/nginx.confに対して、設定を書いていきます。
キャッシュのルールとキャッシュ先とか
httpディレクティブ内に以下を追加する
http { ... fastcgi_cache_path /var/cache/nginx/cache levels=1:2 keys_zone=cache1:500m inactive=60m; fastcgi_cache_key "$scheme$request_method$host$request_uri"; ...
fastcgi_cache_pathで指定しているように/var/cache/nginx/cacheにファイルとしてキャッシュを入れるようにしているので、もしかしたらディレクトリがないとエラーになるかも
fastcgi_cache_keyに書いてあるようなルールでキャッシュのキーを決めるはずなので、この場合だとクエリパラメータが異なっても同じキャッシュとして返すはず。
キャッシュさせる条件とその適用
あ
http { ... (さっきの) ... server { set $no_cache 1; if ($request_uri ~* "images") { set $no_cache 0; } ... location / { ... fastcgi_cache_bypass $no_cache; fastcgi_no_cache $no_cache; fastcgi_cache cache1; fastcgi_cache_valid 200 60m;
無理やりな実装になっているが、imagesに一致したパスに対してはキャッシュさせるようになります。
最後に
初めてnginxのconfigをいじった人なので、こんな書き方になりました。