我想配置清漆作为一个缓存我的一个网站,为一个临时沉重的负载。
我设置了几个虚拟机的清漆,应该缓存我的主要网站。由于我的主服务器承载多个网站,apache服务器被配置为虚拟主机服务器。
因此,我在default.vcl中定义了主网站域名,而不是IP地址,希望清漆能够正确地将请求传播到正确的。但它似乎只是使用IP地址,并缓存apache默认页面,当发送http请求到我的主要网站ip地址。
是否有一种方法可以配置清漆,以便使用正确的url而不是IP:port调用我的后端?
我的清漆配置如下:
backend default{
.host = "www.myvhost.com";
.port = "80";
}而不是:
backend default{
.host = "my.ip";
.port = "80";
}因为我需要清漆实例:http://www1.myvhost.com,http://www2.myvhost.com .缓存主服务器http://www.myvhost.com,而不缓存http://myip:80/
谢谢你的帮忙
发布于 2016-08-04 16:56:58
您可能认为清漆是反向代理,而不是apache。
由于我的主服务器承载多个网站,apache服务器被配置为反向代理。
可以在default.vcl https://github.com/mattiasgeniar/varnish-4.0-configuration-templates/blob/master/default.vcl的后端定义中配置主机名。
所有流量都将指向所有vhost的清漆,但如果服务器上有多个IP,则例外。
我认为您正在寻找的是对单个域的查询。您可以通过在主机上进行过滤来实现这一点。
sub vcl_recv {
if (req.http.host ~ "(www\.)?yourdomain\.com") {
return(pass);
}
}所有不在您域中的通信将直接传递到后端,而不需要查找。
https://stackoverflow.com/questions/38773074
复制相似问题