Varnishcaching如何处理不同的域名?

我刚开始阅读有关Varnish,正在考虑将其作为我的networking服务器的前端。 当我使用相同的查询string时,我的web服务器上有多个域可以获取相同的内容。 所以让我们说一个客户端访问:

http://domain1.com/script.php?string1=abc&string2=123 

之后,其他人访问:

 http://domain2.com/script.php?string1=abc&string2=123 

Varnish会caching第一次访问的结果并将其用于第二个客户端? 谢谢!

编辑:一些更多的阅读后,这听起来像下面的工作:

 sub vcl_hash { set req.hash += req.url; return (hash); } 

所以不是将http.hostvariables添加到哈希,而是忽略它。

您可以对其进行configuration以进行sorting。 默认情况下,它不会(也不应该)。

来自Varnish FAQ / HowDoI

我有一个网站有很多主机名,我怎么让他们不乘以caching?

您可以通过标准化所有主机名的“主机”标题来完成此操作。 这是一个VCL示例:

if (req.http.host ~ "^(www.)?example.com") { set req.http.host = "example.com"; }

我在虚拟机上有3个域名,我使用的是Nginx和Varnish,目前我正在使用pre-prodconfiguration,在这里我正在做什么:

 NGINX:80 ==> VARNISH:8080 ==> NGINX:8081 

我使用Nginx:80像代理如果域需要清漆,如果没有,我使用FastCGI的东西。 在这个例子中,不是Varnish的网站并不关心Varnish。 它看起来很愚蠢,但它炒锅;-)和我的客户都没有抱怨(但….)。