我有一個項目設置與多個碼頭集裝箱,我想訪問一個子域,我試圖代理到另一個容器。我可以實現類似的,當沒有一個子域,例如下面讓我打localdev.com/api
:我如何設置Apache虛擬主機代理到不同的碼頭集裝箱上的子域
<VirtualHost localdev.com:80>
ServerName localdev.com
SetEnv PROJECT_HOME /project/server
SetEnv PROJECT_SERVER_ID local
SetEnv PROJECT_ENVIRONMENT docker
DocumentRoot /project/server/www
<Directory /project/server/www>
Require all granted
</Directory>
<Proxy *>
Allow from localhost
</Proxy>
ProxyPass /api http://api.localdev.com/
ProxyPassReverse /api http://api.localdev.com/
</VirtualHost>
但是當我添加一個虛擬主機api.localdev.com
我被轉發到localdev(網址不會改變該瀏覽器,但我從它的內容)
這是我的子域名的虛擬主機:
<VirtualHost api.localdev.com:80>
ServerName api.localdev.com
<Proxy *>
Allow from localhost
</Proxy>
ProxyPass /http://api.localdev.com/
ProxyPassReverse/http://api.localdev.com/
</VirtualHost>
有趣的是,在Apache日誌,我得到了正確的主機,即api.localdev.com
從含有localdev.com
泊塢窗的容器內,我既可以平&捲曲api.localdev.com
雖然可能不會對這一問題相關的,在我的Mac主機文件,我有以下映射到泊塢窗容器
127.0.0.1 localhost localdev.com api.localdev.com
我在網上尋找的任何地方嘗試解決這個問題並不明確,我承認我發現這些例子令人困惑。任何幫助非常感謝和高興地提供任何進一步的信息,如果我什麼都沒有丟失
容器不會知道Mac/etc/hosts文件中的條目 - 您最好在代理配置中使用Docker主機名值。 – ldg
@idg我意識到,我只有在我的Mac的主機,所以我可以在我的瀏覽器中使用localdev.com,我不相信這是在反正造成我的問題,突然認爲它可能是相關的知道 – jonnie