Varnish 302重定向到后端

时间:2012-03-20 23:47:17

标签: varnish

我在IP Foo 上运行Varnish,其中IP Bar 作为默认后端。我在 Foo 上访问Varnish, Bar 上的Apache返回302而不是来自 Foo 的响应,浏览器被重定向到 Bar ,因此完全错过了Varnish。

有清漆的基本概念吗?我在这里误解了吗?我在与Apache相同的服务器上使用完全相同的VCL运行Varnish并且工作正常。

提前感谢任何帮助/提示/指示: - )

1 个答案:

答案 0 :(得分:3)

您正在从后端获得重定向(302)。重定向必须是绝对的,并且您的后端选择使用它自己的ip / hostname作为URL。

您可以通过多种方式解决此问题:

  • 在后端使用相同的虚拟主机(例如foo.com,其中ip指向您的清漆但在后端被接受为虚拟主机)。您的后端必须足够聪明才能将其用于重定向。
  • 将原始ip-adress作为自定义HTTP请求标头转发到后端(例如,请参阅https://serverfault.com/questions/340500/varnish-forward-client-ip-address-to-backend)。您的后端必须足够聪明才能将其用于重定向。
  • 在varnish中重写302个答案(用foo.com替换Location标题中的bar.com部分)