0
我想启用ESI只为登录的用户。登出的用户应该通过缓存服务整个页面。清漆 - VCL规则以启用ESI只为登录用户
我写了下面的VCL这一点。与此相关的问题是,一旦它缓存登录页面或登出页面,它就会向所有用户显示相同的内容。
vcl_recv {
if (req.http.Cookie ~ "loggedIn") {
if (req.url ~ "^/esi")
{
return (pass);
}
if (req.url ~ "page"){
return (lookup);
}
return (pipe);
}
return (lookup);
}
sub vcl_pipe {
set bereq.http.connection = "close";
}
sub vcl_fetch {
if (req.url ~ "page"){
set beresp.do_esi = true;
set beresp.ttl = 1d;
return (deliver);
}
set beresp.ttl = 1d;
return (deliver);
}
一个解决方案似乎是使用vcl_hash组合url和LoggedIn的cookie,它有两个值0或1.请建议。