1

Tomcat 5.5 を使用していますが、次のことを行いたいと考えています。

2 つの Web アプリケーションがデプロイされている場合 (それらをfoobarにします)、相対パスとエイリアスの両方でそれらにアクセスできるようにしたいと考えています。

localhost:8080/foo -> foo およびfoo.example.com -> foo

そしてそれぞれ

localhost:8080/bar -> bar およびbar.example.com -> bar

エンジン内で異なるホストを使用し、エイリアスを提供すると (ドキュメントに記載されているとおり)、エイリアス URL は正常に機能しますが、相対 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 は各コンテキストを 2 回ロードしているようです。これを達成する他の方法はありますか?

4

1 に答える 1

1

そのように構成したため、実際にアプリケーションを 2 回ロードします。URL 書き換えマジックを実行するには、Tomcat の前に apache httpd インスタンスが必要です。

于 2010-01-19T17:42:01.360 に答える