システム移行の案件等、プロキシー型のCDNを動作確認するためにVarnishでエミュレートすることが度々あります。

今回は、その際に、CDNによりますがGETだけキャッシュして、それ以外は、そのままオリジンサーバに通してしまうものもあり、その辺りをVarnishでどのように実現するかについて紹介します。

方法としては、下記のように設定ファイルを変更することで実現可能です。

vi /etc/varnish/default.vcl

sub vcl_recv {
 if(req.request == "GET") {
   return (lookup);
 }
 return (pass);
}

lookupはキャッシュからコンテンツを探し、passは、そのままオリジンサーバにパスするという挙動になります。

上記をまとめますと、GETメソッドの場合はキャッシュからコンテンツを探し(lookup)POSTのような、それ以外のメソッドの場合は、そのままオリジンサーバにパスするようになっています。

CDN使ってるシステムの移行はテストが大変です。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら