這是一個棘手的情況。我正在測試最近集裝箱化的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
。