我如何使用 Varnish 在同一个后端服务器(Web 服务器)上缓存另一个网站?

我如何使用 Varnish 在同一个后端服务器(Web 服务器)上缓存另一个网站?

我有一台 IIS 网络服务器,它使用 varnish。ISS 上还有更多网站。IIS 上的所有网站标头均来自端口 80。我可以像下面的代码一样使用 varnish 缓存所有网站吗?

backend cacheWebSite{.host = "192.168.0.1"; .port = "80";} sub vcl_recv {if (req.http.host == "www.example1.com") {set req.backend = CacheWebSites;} if (req.http.host == "www.example2.com") {set req.backend = CacheWebSites; } if (req.http.host == "www.example3.com") {set req.backend = CacheWebSites; }}

我无法测试此代码。这只是场景。非常感谢您的帮助。

答案1

如果你在一个 varnish 实例后面缓存了许多站点,并且这些站点位于同一台机器上,那么你实际上不需要做任何事情,只需设置即可:

backend default {
  .host = "192.168.0.1"; 
  .port = "80";
}

只要后端正确响应,Varnish 就能处理好这个问题。您可以使用 if 块来更改传递给后端的主机名,或者,如果您需要进行负载平衡等。对于您来说,指定默认后端而不使用任何其他 VCL 就可以满足您的需要。

相关内容