首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >清漆作为apache虚拟主机前面的缓存。

清漆作为apache虚拟主机前面的缓存。
EN

Stack Overflow用户
提问于 2016-08-04 16:45:03
回答 1查看 1.4K关注 0票数 0

我想配置清漆作为一个缓存我的一个网站,为一个临时沉重的负载。

我设置了几个虚拟机的清漆,应该缓存我的主要网站。由于我的主服务器承载多个网站,apache服务器被配置为虚拟主机服务器。

因此,我在default.vcl中定义了主网站域名,而不是IP地址,希望清漆能够正确地将请求传播到正确的。但它似乎只是使用IP地址,并缓存apache默认页面,当发送http请求到我的主要网站ip地址。

是否有一种方法可以配置清漆,以便使用正确的url而不是IP:port调用我的后端?

我的清漆配置如下:

代码语言:javascript
复制
backend default{
  .host = "www.myvhost.com";   
  .port = "80"; 
}

而不是:

代码语言:javascript
复制
backend default{
  .host = "my.ip";   
  .port = "80"; 
}

因为我需要清漆实例:http://www1.myvhost.comhttp://www2.myvhost.com .缓存主服务器http://www.myvhost.com,而不缓存http://myip:80/

谢谢你的帮忙

EN

回答 1

Stack Overflow用户

发布于 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,则例外。

我认为您正在寻找的是对单个域的查询。您可以通过在主机上进行过滤来实现这一点。

代码语言:javascript
复制
sub vcl_recv {
   if (req.http.host ~ "(www\.)?yourdomain\.com") {
     return(pass);
   }
}

所有不在您域中的通信将直接传递到后端,而不需要查找。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38773074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档