2015-11-05 67 views
2

這是一個棘手的情況。我正在測試最近集裝箱化的Laravel應用程序的部署。我製作了一個基於php的容器,該容器在其內部運行Apache來爲應用程序提供服務。如果我只是運行這個容器,綁定到端口5000,然後link_to('/login')正確地生成指向localhost:5000/login的鏈接。link_to從託管在容器中的站點剝離端口

但是,現在我正在測試一個實際的部署場景,其中此容器在nginx負載平衡器後面運行。我使用Vagrant建立了一個虛擬機,它運行兩個容器:一個用於nginx負載均衡器,另一個用於Apache/Laravel應用程序。我在主機端口7000上訪問虛擬機的端口80.

在這種情況下,link_to('/login')現在會生成指向localhost/login的鏈接。港口在哪裏失蹤?它應該鏈接到localhost:7000/login,因爲這是我訪問該頁面的端口。

我該如何調試?我試過尋找link_to的實施,但我懷疑問題在別處。

編輯

我剛剛發現,另外,如果我所服務的網站通過HTTPS(在nginx的結束;阿帕奇仍然沒有通過HTTP一切),這也從link_to創建的鏈接剝離。而不是https://localhost:7443/login,鏈接看起來像localhost/login

回答

0

解決方案是使用類似fideloper/proxy的東西來正確處理由Nginx添加的代理標頭。我以爲我已經這樣做了,但我忘記了將門面添加到app/config/app.php