首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Varnish完全排除子域

使用Varnish完全排除子域
EN

Stack Overflow用户
提问于 2016-02-09 17:31:42
回答 1查看 606关注 0票数 1

场景:我有一个带有许多不同子域的Apache/Varnish设置。每个子域都有自己的VirtualHost文件,但都运行在相同的Wordpress安装中。除了一个: sqlbuddy.mydomain.com,这是一个独立的SQL伙伴网站(基于web的SQL管理)。

问题: Varnish可以完美地运行在除sqlbuddy之外的所有站点上。有时我根本无法访问它,并得到错误"Error 503 Backend fetch failed“。有时我可以访问它,但当我尝试登录时得到相同的错误。有时,当我尝试登录时,什么也不会发生。有时登录成功,但当我尝试执行某些操作时出现错误。

我想要/尝试的:这个站点不需要缓存,所以我希望Varnish完全忽略它。

这是我尝试过的(在我的vcl_recv的顶部):

代码语言:javascript
复制
if (req.http.host == "sqlbuddy.mydomain.com" && req.url == "/") {
return (pass);
}

以及它的不同变体(没有req.url、return (管道);等等),但我仍然得到错误。我也尝试过将VirtualHost放在不同的端口上,以绕过Varnish,但似乎sqlbuddy不会听它的。

否则,我使用这个VCL:https://gist.github.com/nadirlc/46987b42447cf8e3be79,VirtualHosts监听127.0.0.1:8008。

有没有用Varnish做这件事的其他方法?

如果需要更多信息,或者我遗漏了一些明显的东西,请告诉我。说到瓦尼什,我可不是最好的。

EN

回答 1

Stack Overflow用户

发布于 2016-02-28 07:42:18

您是否尝试过使用正则表达式来代替与~匹配

代码语言:javascript
复制
if (req.http.host ~ "sqlbuddy.mydomain.com") {
return (pass);
}

甚至是

代码语言:javascript
复制
if (req.http.host ~ "sqlbuddy") {
return (pass);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35288308

复制
相关文章

相似问题

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