Varnish默认的vcl_recv专门设计用来实现安全的缓存策略,它主要完成两种功能:
(1)仅处理可以识别的HTTP方法,并且只缓存GET和HEAD方法;
(2)不缓存任何用户特有的数据;
下面是一个自定义的使用示例:
sub vcl_recv {
if (req.http.User-Agent ~ "iPad" ||
req.http.User-Agent ~ "iPhone" ||
req.http.User-Agent ~ "Android") {
set req.http.X-Device = "mobile";
} else {
set req.http.X-Device = "desktop";
}
}
如果用户请求的时候浏览器用户代理是iPad iPhone Android
那么于是将其设定首部为mobile
否则就设标注首部为desktop 桌面客户端
于是可以将其做响应处理了,比如如果是移动客户端将转为手机版服务器
如果是桌面客户端则转为正常web服务器