nginx
で簡単な画像のキャッシュコントロール
location
ディレクティブの内側で、expires
を設定するだけ。
expires
ディレクティブは、httpヘッダーのCache-Control
とExpires
を付加してくれる。
追加するディレクティブ
location
ディレクティブの指定はこちらの
nginx連載5回目: nginxの設定、その3 - locationディレクティブ - インフラエンジニアway - Powered by HEARTBEATS
が日本語でわかりやすい。
要約すれば必要な設定は、~*
で正規表現のlocation
ディレクティブを追加するということ。このディレクティブの実行後に前方一致の他のlocation
ディレクティブが実行される。
expires
は指定できる単位がいろいろある。ドキュメントはこちら:
Configuration file measurement units
expires
自体のドキュメントはこちら:
Module ngx_http_headers_module
つまり、
location
ディレクティブを追加する。(既存なら不要)- 上のディレクティブの内側に
expires
ディレクティブを指定する。
の2点を行えばいい。
実装例
画像リソースのキャッシュを指示する例。画像は基本不変なのでもっと長く指定してもいい。
server {
... 前方一致のlocationディレクティブなど
...
location ~* \.(gif|jpg|png)$ {
expires 30d;
}
}
こうしておけば、前方一致のディレクティブも実行され、httpヘッダにCache-Control
とExpires
が付与される。
おわり
上記の例は、ブラウザのキャッシュの有効期間の指定になる。
期限以外も指定したいなら、add_header
ディレクティブを使用する必要がある。
指定するフォーマットなどは、Cache-Control - HTTP | MDNが詳しい。
MDN万能だなあ。
以上です。
広告
https://amzn.to/33jN7ZP