2015-10-13 98 views
1

我有多臺運行在給定機器上的Web服務器(Apache,Tomcat,自定義Python服務器)。正如標準設置一樣,我已經在端口80上監聽Apache。爲了訪問我的其他服務器中的一個通過此端口,我設置一個的ProxyPass在Apache的是這樣的:如何將Apache ProxyPass設置爲覆蓋父ProxyPass的子目錄?

ProxyPass/http://[mydomainname]:8880/ 
ProxyPassReverse/http://[mydomainname]:8880/ 

它的工作原理。當您瀏覽到沒有端口規範(因爲默認爲80)的域名時,您將無法訪問Apache根目錄,而是透明地重定向到偵聽端口8880的計算機上另一臺服務器(Twisted服務器)的根目錄。

這是問題所在。看來我已經阻止了現在到達我的Apache文件的任何內容。有沒有辦法來覆蓋各種子目錄的根代理傳遞?例如,如果您瀏覽到mydomain/test,我可以讓它像我沒有代理服務器一樣工作,而不是將它路由到端口8880服務器上的路徑上?

回答

3

我在SO線程上找到了答案:ProxyPass and DocumentRoot on one domain

在根ProxyPass指令之前,只需添加一個ProxyPass排除和一個目錄別名。注意:爲每個要公開的Apache子目錄重複。

ProxyPass /MySubDirectory ! 
Alias /MySubDirectory /var/www/html/MySubDirectory 
+0

它救了我。 –