2010-01-19 48 views
1

我使用Tomcat 5.5不同的情況下,我要做到以下幾點:別名用的Apache Tomcat 5.5

如果兩個Web應用程序的部署(讓他們酒吧)我想成爲能夠以相對路徑和別名訪問它們。

本地主機:8080 /富 - > foo和foo.example.com - > FOO

和分別

本地主機:8080 /巴 - > bar and bar.example.com - > bar

如果我在引擎中使用不同的主機並提供​​別名(如文檔指定的那樣),那麼別名的url工作正常,但不是相對的。爲了讓它們都能夠正常工作,我需要一個額外的主機「localhost」並再次聲明相同的上下文。這是我的server.xml

<Engine name="Catalina" defaultHost="localhost"> 
    <Host name="foo.example.com"> 
     <Context docBase="webapps/foo" path="" workDir="work/Catalina/foo/_"/> 
     <Alias>foo.example.com</Alias> 
    </Host> 
    <Host name="bar.example.com"> 
     <Context docBase="webapps/bar" path="" workDir="work/Catalina/bar/_"/> 
     <Alias>bar.example.com</Alias> 
    </Host> 
    <Host name="localhost" appBase="webapps" autoDeploy="false" > 
     <Context path="foo" workDir="work/Catalina/foo/_" /> 
     <Context path="bar" workDir="work/Catalina/bar/_" /> 
    </Host> 
</Engine 

雖然它這樣工作,似乎tomcat加載每個上下文兩次。有沒有其他方法可以實現這一點?

回答

1

它確實加載了兩次應用程序,因爲您是這樣配置它的。你需要一個Apache Tomcat前面的httpd實例來做一些url重寫魔術。