システム移行の案件等、プロキシー型の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使ってるシステムの移行はテストが大変です。