清漆:仅缓存特定域

Run*_*une 15 apache dns performance varnish

我一直在谷歌搜索积极,但没有运气.

我正在使用Varnish,效果很好,但我想在一台服务器(Apache)上托管多个网站,而不使用Varnish缓存所有这些网站.

我可以通过URL指定要缓存的网站吗?

谢谢

ivy*_*ivy 31

(在评论后编辑)它是req.http.host,所以在你的vcl文件中(例如default.vcl)做:

sub vcl_recv {
  # dont cache foo.com or bar.com - optional www
   if (req.http.host ~ "(www\.)?(foo|bar)\.com") {
     pass;
   }
  # cache foobar.com - optional www
   if (req.http.host ~ "(www\.)?foobar\.com") {
     lookup;
   }
}
Run Code Online (Sandbox Code Playgroud)

在varnish3-vcl中:

sub vcl_recv {
  # dont cache foo.com or bar.com - optional www
   if (req.http.host ~ "(www\.)?(foo|bar)\.com") {
     return(pass);
   }
  # cache foobar.com - optional www
   if (req.http.host ~ "(www\.)?foobar\.com") {
     return(lookup);
   }
}
Run Code Online (Sandbox Code Playgroud)


per*_*rbu 6

是,

在vcl_recv你只是比赛,你会喜欢的主机缓存并通过考试.像这样(未经测试):

vcl_recv {
   # dont cache foo.com or bar.com - optional www
   if (req.host ~ "(www)?(foo|bar).com") {
     return(pass);
   }
}
Run Code Online (Sandbox Code Playgroud)