我一直在谷歌搜索,但没有运气。
我正在使用Varnish,效果很好,但我想在一台服务器(Apache)上托管多个网站,而不使用Varnish缓存所有这些网站。
我可以通过网址指定要缓存的网站吗?
由于
答案 0 :(得分: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;
}
}
在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);
}
}
答案 1 :(得分:6)
是,
在vcl_recv中,您只需匹配您希望 not 缓存并传递它们的主机。像这样(未经测试):
vcl_recv {
# dont cache foo.com or bar.com - optional www
if (req.host ~ "(www)?(foo|bar).com") {
return(pass);
}
}
答案 2 :(得分:1)
用哈希
替换查找default.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(hash);
}
}