nginxで簡単なリソースのキャッシュコントロール
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](https://developer.mozilla.org/ja/docs/Web/HTTP/Headers/Cache-Control)が詳しい。 |
MDN万能だなあ。
以上です。
広告