ポンコツエンジニアのごじゃっぺ開発日記。

いろいろポンコツだけど、気にするな。プログラム&ロボット大好きなポンコツが日々の記録を残していきます。 自動で収入を得られるサービスやシステムを作ることが目標!!

初心者がNginxのFastCGIキャッシュでproxyキャッシュを試してみる

初心者過ぎて題名が正しいのかも怪しいくらい。

そんな初心者が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をいじった人なので、こんな書き方になりました。