场景:我有一个带有许多不同子域的Apache/Varnish设置。每个子域都有自己的VirtualHost文件,但都运行在相同的Wordpress安装中。除了一个: sqlbuddy.mydomain.com,这是一个独立的SQL伙伴网站(基于web的SQL管理)。
问题: Varnish可以完美地运行在除sqlbuddy之外的所有站点上。有时我根本无法访问它,并得到错误"Error 503 Backend fetch failed“。有时我可以访问它,但当我尝试登录时得到相同的错误。有时,当我尝试登录时,什么也不会发生。有时登录成功,但当我尝试执行某些操作时出现错误。
我想要/尝试的:这个站点不需要缓存,所以我希望Varnish完全忽略它。
这是我尝试过的(在我的vcl_recv的顶部):
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做这件事的其他方法?
如果需要更多信息,或者我遗漏了一些明显的东西,请告诉我。说到瓦尼什,我可不是最好的。
发布于 2016-02-28 07:42:18
您是否尝试过使用正则表达式来代替与~匹配
if (req.http.host ~ "sqlbuddy.mydomain.com") {
return (pass);
}甚至是
if (req.http.host ~ "sqlbuddy") {
return (pass);
}https://stackoverflow.com/questions/35288308
复制相似问题