与多个网站/盒清漆

清漆可能根据url将stream量redirect到不同的IP地址?

例如,以下设置是否可行(如果是这样的话,VCL将如何):

  1. * .example.com指向Varnish IP地址
  2. 当向foo.example.com发出请求时,varnish会检查caching并将请求发送到Server1的caching未命中的IP地址。
  3. 当向bar.example.com发出请求时,varnish将检查caching并将请求发送到Server2的caching未命中的IP地址。

foo和bar是(大部分)完全不相关的网站。 他们使用引擎,但有不同的内容和自己独特的数据库。 既然以前没有这样做(成本除外),我们把它们分成两个单独的盒子,这样一大堆stream量就不会对浏览酒吧的游客造成负面影响。

我可以设置两个清漆的实例,有一个提供foo的静态内容,另一个提供酒吧,但由于似乎没有太多的运行光油的开销,我想(也许是错误的),它会更有意义去与一个Varnish服务器,redirectstream量caching未命中相应的盒子。

是的。 先尝试在default.vcl中定义你的后端:

backend foo { .host = "1.2.3.4"; # IP of foo backend .port = "80"; } backend bar { .host = "1.2.3.6"; # IP of bar backend .port = "80"; } 

并在vcl_recv()代码中使用类似于:

  if (req.http.host ~ "foo.example.com") { set req.backend = foo; }else{ set req.backend = bar; } 

http://www.varnish-cache.org/docs/2.1/上有很好的文档(对于这样的例子来说足够了)),你可以用VCL做更多的事情。 真是太酷了