Varnish 重定向到 apache 后端端口 8000

Varnish 重定向到 apache 后端端口 8000

我在专用服务器上设置了 apache 和 varnish,它在 debian squeeze 上运行。

有时 varnish 会重定向到 apache 后端端口 8000。在这种情况下,浏览器会显示 mydomain.com:8000/shop/,但无法连接到服务器,因此不会显示任何内容。我猜问题是由我的 apache 或 varnish 配置引起的,这两个配置都非常基础。

varnish 在 80 端口上运行 apache 在 8000 端口上运行

这里有一些例子:

mydomain.com/shop/ -> mydomain.com/shop/ (有效!商店显示正确)

mydomain.com/shop -> mydomain.com:8000/shop/ (未连接到服务器;没有内容)

mydomain.com/phpinfo.php -> mydomain.com/phpinfo.php (有效!)

我使用的商店是 shopware。我曾考虑编辑 den shop 目录中的 .htaccess,但没用。所以我使用的是标准 shopware .htaccess。

如果有帮助的话,我可以发布我的配置文件(varnish/apache)或我的服务器的正确 url。

我将非常感激任何建议。我没什么主意了。

提前感谢!Michael

答案1

这是 Apache 的问题。Apache 尝试规范化 Url。

网址“http://example.com/foo“不同于”http://example.com/foo/“(带斜杠)。但大多数时候需要的是相同的资源。

Apache 尝试重写没有尾随斜杠的 URL,因此它们指向带有尾随斜杠的 URL。

现在的问题是您的服务器在端口 8000 上运行,所以 apache 也添加了这个端口。

从我的角度来看有两种选择:

  1. 在端口 80 上运行 Apache
  2. 在您的 apache conf 中设置“UseCanonicalName Off”并构建自己的重写以将没有尾随斜杠的 URL 指向正确的点。

相关内容