Varnishを試す環境を作る
参考
公式のtutorial
install後の手順
dockerで起動する
ここに書いているdocker-compose.ymlとdefault.vclのコピペで一瞬で作れる $ docker-compose up
$ http :80
↑これでvarnishの方を見る
apacheに直接叩く時は$ http :8080
内部に入る
$ docker exec -ti varnish bash
$ docker exec -ti httpd bash
httpdを触る
/usr/local/apache2/conf/の中にhttpd.confがある
cache hitの確認どうする?
response見た感じまだなんもcacheされている感じがない
設定何も書いてないのでそらそうかmrsekut.icon
httpdの方に入って
やらなくて良さそうmrsekut.icon
vimを入れたあとに
$ vim /usr/local/apache2/conf/httpd.conf
ServerNameの箇所をコメントアウト外す
一番下とかにHeader set Cache-Control "public, max-age=604800"を追加
これでCache-Controlが入る
$ httpd -k restart
Varnishをrestartする
$ varnishreload
j
code:default.vvl
vcl 4.1;
backend default {
.host = "httpd";
.port = "80";
}
acl purge {
"localhost";
}
sub vcl_recv {
if (req.method == "PURGE") {
if (!client.ip ~ purge) {
return(synth(405,"Not allowed."));
}
return (purge);
}
}
sub vcl_hash {
hash_data(req.url);
hash_data(req.http.X-Cache-Key);
}
sub vcl_backend_response {
set beresp.ttl = 3600s;
}
sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT";
} else {
set resp.http.X-Cache = "MISS";
}
}
purgeしてみる
localhostをしているのでserver内に入る必要がある
curlがないので入れる
$ apt-get install curl
purgeのrequestを送る