monolithic kernel

nginxでコンテンツをキャッシュするメモ

前回Varnishで行ったのと同じキャッシュをnginxで行うメモ。purgeが厄介だったのでボツになりましたが、用途によってはこちらで十分かもしれません。

proxy_cache_path /path/to/cache levels=1:2 keys_zone=cache-space:4m max_size=50m inactive=120m;
proxy_temp_path /path/to/tmp;

server {
  # 携帯電話からのアクセスの場合trueになる
  set $mobile false;
  if ($http_user_agent ~* "DoCoMo|KDDI|SoftBank|Vodafone") {
    set $mobile true;
  }

  location / {
    proxy_cache cache-space;
    proxy_cache_key "$scheme$host$request_uri$mobile"; # キャッシュの識別子に携帯電話かどうかのフラグを含める
    proxy_cache_valid 1h;
    proxy_pass http://localhost:9000;
  }
}