将laravel与apache和varnish结合使用


using laravel with apache and varnish

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

http://localhost/ 

它工作得很好,但网站上的所有链接都显示出类似的内容:

http://localhost:8080/about-us

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

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

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

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

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

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