本家はこちら
Nginx + SpringBoot の構成で環境を構築している。
まだ、静的ファイル(.css,.js,.jpg,.gif,.map) はCDNを使わない感じでなんとでもなる規模だが、アクセス数が増えていくと、ちょっとSpringBootだけだとレスポンスが遅くなってきたので、対策する。
静的ファイルはSpringBootで返して、Nginxでキャッシュする設定にする。
SpringBootは設定は特になし。
Nginxに下記の設定を行う。
server {
location / {
// 省略
proxy_ignore_headers Cache-Control Expires;
proxy_cache cachezone;
proxy_cache_valid 404 5m;
// 省略
add_header X-Cache $upstream_cache_status [always];
}
}
proxy_ignore_headers Cache-Control Expires;
この設定が必要です。
キャッシュがヒットしてるかどうかは、add_header
で確認できますが、HTTPステータスが正常系しか動作しません。
add_header
に always
をつけると、どのHTTPステータスでもでてくので、確認できます。
このようにすると、ある程度の規模までは、CDN使わずに、サクサクいけます。 最近ではHTTP/2でコネクション数の上限もほとんど気にしなくていいですし。