核心的配置是/etc/varnish/default.vcl,配置的是Varinsh的引擎。
分析最常用的引擎
①vcl_recv引擎,最初接受HTTP的请求的引擎,判断是否需要进入hash引擎
②vcl_hash 引擎,定义hit和Miss的路径,所以走默认路
③vcl_purge引擎,缓存对象的修剪
④vcl_backend_response引擎,定义要缓存的文件时长
⑤deliver引擎,定义响应信息的显示
实例:
1.vcl_recv引擎:
1.1定义前端获取的x-forwarded-for地址
if (req.http.x-forwarded-for) {
set req.http.X-Forwarded-For = regsub(req.http.X-Forwarded-For, “,.*”, “”);
} else {
set req.http.X-Forwarded-For = client.ip;
}
1.2定义获取缓存的后端
set req.backend_hint = fsweb.backend()
#fsweb.backend()在二小节已经定义过
2.vcl_backend_response引擎:定义缓存的实效
if (beresp.http.cache-control !~ “s-maxage”) {
if (bereq.url ~ “(?i)\.(jpg|jpeg|png|gif|css|js)$”) {
unset beresp.http.Set-Cookie;
set beresp.ttl = 3600s;
}
}