我刚开始阅读有关 Varnish 的内容,并正在考虑将其用作我的网络服务器的前端。我的网络服务器上有多个域,当使用相同的查询字符串时,它们会获取相同的内容。因此,假设一位客户访问:
http://domain1.com/script.php?string1=abc&string2=123
稍后,其他人访问:
http://domain2.com/script.php?string1=abc&string2=123
Varnish 会缓存第一次访问的结果并将其用于第二个客户端吗?谢谢!
编辑:经过更多阅读,听起来以下可能有效:
sub vcl_hash {
set req.hash += req.url;
return (hash);
}
因此,它没有将 http.host 变量添加到哈希中,而是忽略它。
您可以将其配置为这样做。默认情况下,它不会(也不应该)。
来自Varnish FAQ/HowDoI
我的虚拟机上有 3 个域,我正在使用 Nginx 和 Varnish,目前我处于预生产配置中,这就是我正在做的事情:
如果域需要 Varnish,我使用 Nginx:80 作为代理,如果不需要,我使用 FastCGI 的东西。在此示例中,非 Varnish 站点不受 Varnish 关注。它看起来很愚蠢,但它可以;-)而且我的客户都没有抱怨(但是......)。