2017-08-26 124 views
0

最近,我需要同時使用Apache和Tomcat一起在Apache的是作爲反向代理將請求轉發到端口80爲localhost:8080,我不喜歡這樣的:Apache和Tomcat代理

<VirtualHost *:*> 
     ProxyPass  /http://localhost:8080/app/ 
</VirtualHost> 

它工作得很好。

現在,我需要做的是:我有Tomcat監聽並在另一個端口8082服務。我需要能夠使用www.mydomain.com:8082訪問它。我試過了:

<VirtualHost *:8082> 
     ProxyPass  /http://localhost:8082/app/ 
</VirtualHost> 

但是沒有運氣。我不能聽8082,因爲Tomcat正在這樣做。

回答

2

您上面的內容是嘗試將/ URL空間映射到兩個不同的位置(嘗試失敗)。這永遠不會起作用。

當代理到Tomcat的,它永遠不會重寫URL路徑是一個好主意(如/ - >/app/因爲Tomcat的是會得到各種各樣的困惑這是更好的個別應用程序映射:

<VirtualHost *:*> 
    ProxyPass /app1/ http://localhost:8080/app1/ 
    ProxyPass /app2/ http://localhost:8080/app2/ 
    ProxyPass /app3/ http://localhost:8082/app3/ 
    ProxyPass /app4/ http://localhost:8082/app4/ 
    # If you need a fall-back application for `/`, just map it last. 
    ProxyPass/http://localhost:8080/ 
</VirtualHost> 

。請注意,最後一行將映射/映射到Tomcat的ROOT上下文(掛載在/'上)。不要以任何其他方式執行此操作,否則您可能會花費數年的時間嘗試使所有操作都可以正常工作,方式