画像ファイルをキャッシュしないと、2度目以降アクセス場合、リクエストが発生してしまいます。キャッシュを永続化してリクエストをなくす設定があまりにも簡単だったのでブログします。
■/etc/nginx/conf.d/hoge.conf
1 2 3 4 5 |
location ~ \.(css|gif|ico|jpeg|jpg|js|pdf|png|svg|swf|zip|eot|otf|ttf|woff|woff2) { expires 30d; access_log off; log_not_found off; } |
上記のように期限は1ヶ月にして、その期限に達していない限り、ブラウザはサーバに問い合わせを行いません。ちなみに期限が切れると以下の挙動になります。
■Caching Process
https://www.nginx.com/blog/nginx-high-performance-caching/
- 期限が切れているので、そもそもサーバへ問い合わせを行う
- 条件付きリクエスト(If-Modified-Since、If-None-Match)をサーバへ送る
もちろん条件付きリクエストを送ってくるのは前回のサーバからLast-Modified,Etagを送っている場合のみです。そしてサーバ側は条件付きリクエストがクライアントから送られてくると、変更ありなしを判別して、304を返せば通信量を減らせます。304を受け取った場合は、ブラウザがローカルのキャッシュを利用します。
■まとめ
AWSでCloudFrontを使用しない場合は必須!
0件のコメント