SSLアクセラレータ配下のnginxで
http、httpsで個別のキャッシュにしたいときに、
この設定をいれると、一見$schemeでhttp/httpsに振り分けられて
出来そうに見えますが、このままだと同じキャッシュになります。
proxy_cache_key "$scheme://$host$request_uri";
fastcgi_cache_key
uwsgi_cache_key
も同様
nginxに復号された状態でrequestがくるのでssl用のvirtualhostの
$schemeの中身はhttpになっています。
回避するには明示的にcache_keyにhttpsと指定する必要あり。
- http
proxy_cache_key "$scheme://$host$request_uri";
proxy_cache_key "https://$host$request_uri";
もしくはcache用の変数を1個かまして、proxy_cache_key は同じ設定にする。
($schemeは元から定義されている変数なので別に用意)
- http
set $cache_scheme "http"; proxy_cache_key "$cache_scheme://$host$request_uri";
set $cache_scheme "https"; proxy_cache_key "$cache_scheme://$host$request_uri";