我一直在积极Googlesearch,但没有运气。
我使用Varnish的效果很好,但是我想在一台服务器(Apache)上托pipe多个网站,而没有Varnishcaching所有这些网站。
我可以通过URL来指定要caching的网站吗?
谢谢
(编辑后评论)这是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); } }
是,
在vcl_recv中,您只需匹配您不想缓存的主机并将其传递给它们。 像这样(未经测试):
vcl_recv { # dont cache foo.com or bar.com - optional www if (req.host ~ "(www)?(foo|bar).com") { return(pass); } }
用散列替换查找
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); } }