【问题标题】:Why is Varnish redirecting as 301?为什么 Varnish 重定向为 301?
【发布时间】:2016-09-25 15:15:24
【问题描述】:

我一直在 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:我知道我的两个后端是等效的,以后部署更多应用时我会更改默认设置。

【问题讨论】:

    标签: apache docker varnish


    【解决方案1】:

    在黑暗的答案中开枪。如果您将默认 backend_req 放入 else 语句而不是 if 之外,您还会得到 301 吗?

    【讨论】:

    • 刚刚看到你的回答,很遗憾是的。当我添加了一些其他后端定义时,我很快意识到将其保留在那里是错误的。由于我定义的其他后端工作正常,我认为这是安装过程中 wiki 的错误配置。还是需要确认一下。但是感谢您的回答;-)
    猜你喜欢
    • 2017-09-04
    • 2016-02-02
    • 2011-12-17
    • 2011-09-29
    • 2019-08-09
    • 2011-09-27
    • 1970-01-01
    • 2018-07-05
    • 2016-05-14
    相关资源
    最近更新 更多