为什么Varnish重定向为301?

时间:2016-05-27 10:15:06

标签: apache docker varnish

我一直在VPS上部署基于Apache2的mediawiki docker容器(appscontainer / mediawiki),我在其上面安装了一个全新的Varnish,以便能够将不同的子域代理到相同的应用程序上服务器

我当前的default.vcl配置文件如下所示:

backend default {
  .host = "127.0.0.1";
  .port = "8080";
}

backend wikimedia {
 .host = "localhost";
 .port = "8080";
}

sub vcl_recv {
  if(req.http.host == "wiki.virtual-assembly.org") {
    set req.backend_hint = wikimedia;
  }

  set req.backend_hint = default;
}

我的问题是,当我请求URL http://wiki.virtual-assembly.org时,我通过301重定向到端口8080(apache2实例正在侦听的端口)上的服务器的IP地址。

有没有办法告诉Varnish将位置保持为http://wiki.virtual-assembly.org,还是apache2配置错误?

提前致谢,

PS:我知道我的两个后端是等效的,我将在未来部署更多应用时更改默认值。

1 个答案:

答案 0 :(得分:0)

在黑暗的答案中拍摄。如果你将默认的backend_req放入else语句而不是if之外,你仍然得到301吗?