0

所以我遇到了一个我无法找到任何资源的问题。我正在尝试使用 apache 和 varnish 运行 laravel。它工作正常,有一个例外,所有 url 都添加了 apache 正在运行的端口(8080)。所以当我转到链接时:

http://localhost/ 

它工作正常,但网站上的所有链接都显示如下:

http://localhost:8080/about-us

我在端口 80 上运行清漆,在端口 8080 上运行 apache。我很确定是清漆导致了这个问题,因为当我在端口 80 上只使用 apache 运行它时,它可以在不添加端口的情况下工作。有谁知道如何绕过它在其中添加端口。我无法通过谷歌找到有关此问题的任何信息。

4

1 回答 1

0

我不是 PHP 天才,但我所知道的所有 Web 框架都在入站请求中使用主机标头来生成非相对链接(附带问题:为什么当资源在第一个主机上时要呈现绝对 URL地方?)。

因此,如果在您的 VCL 中,您将请求或后端请求的 (bereq) 主机标头重写为 localhost:8080 a la

set req.http.Host = "localhost:8080";

或者

set bereq.http.Host = "localhost:8080";

或者在 apache 中做同样的事情,这就是导致问题的原因。如果不是这样,PHP 正在使用服务器运行的端口而不是主机标头来构造 URL,这几乎是普遍不受欢迎的行为,很可能是由于您的配置错误。

于 2013-07-23T00:22:47.923 回答