1

我正在使用 tomcat 5.5,我想做以下事情:

如果部署了两个 Web 应用程序(让它们成为foobar),我希望能够使用相对路径和别名来访问它们。

localhost:8080/foo -> foo 和foo.example.com -> foo

和分别

localhost:8080/bar -> bar 和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 正在加载每个上下文两次。有没有其他方法可以实现这一目标?

4

1 回答 1

1

它确实加载了两次应用程序,因为您是这样配置的。您需要在 tomcat 前面有一个 apache httpd 实例来执行一些 url 重写魔术。

于 2010-01-19T17:42:01.360 回答