web-dev-qa-db-ja.com

サブドメインをTomcat6のWebアプリ(ルートWebアプリを含む)にどのようにマッピングしますか?

主題はそれをすべて言います。私が欲しいのは、各サブドメインを次のようなWebアプリにマップすることです。

http://root.domain.com:8080 -> http://domain.com:8080/
http://manager.domain.com:8080 -> http://domain.com:8080/manager
http://abc.domain.com:8080 -> http://domain.com:8080/abc
http://def.domain.com:8080 -> http://domain.com:8080/def

ローカルホストマシンでは、これは

http://root.localhost:8080 -> http://localhost:8080/
http://manager.localhost:8080 -> http://localhost:8080/manager
http://abc.localhost:8080 -> http://localhost:8080/abc
http://def.localhost:8080 -> http://localhost:8080/def

理想的には、8080の代わりにポート80を使用したいのですが、それは別の話です。 URLの最後のパスが消えるように、最初はポート8080でそれを実行できれば幸いです。

矢印はリダイレクトではなく、Tomcatをそのままにしておくと入力するものであることに注意してください。

Tomcatのドキュメントページを知っています http://Tomcat.Apache.org/Tomcat-6.0-doc/virtual-hosting-howto.html 。何度も読んだことがありますが、あまり進歩していません。 etc/hostsを編集して、127.0.0.1bbstats.localhostを追加しました。その後、追加しました

<Host name="bbstats.localhost" appBase="webapps/bbstats"
      unpackWARs="true" autoDeploy="true"
      xmlValidation="false" xmlNamespaceAware="false">
</Host>

confディレクトリのTomcatのserver.xmlに。私のwebappのcontext.xmlは次のとおりです。

<Context path="/bbstats" docBase="bbstats" debug="5" reloadable="true" crossContext="true"> 
</Context>

Tomcatを再起動します。 Ant経由でRedploy。入るとき

http://bbstats.localhost:8080 /

ブラウザに入ると、空白の画面が表示されます。

AppBase = "webapps/bbstats"の代わりにappBase = "webapps"を使用すると、Tomcatのルートアプリにアクセスします。後者の動作は一種の予想です。しかし、URLに末尾の/ bbstatsを付けずにbbstats.localhost:8080をbbstats webappに移動させるにはどうすればよいですか?

21
Kawu

<Host>を指定して、server.xmlのpath=""内にルートWebアプリとして各Webアプリをネストしてみてください。私はこれを自分で試したことがありません。

<Host name="bbstats.localhost" appBase="webapps">
    <Context path="" docBase="/bbstats/"/>
</Host>

<Host name="tomcatstuff.localhost" appBase="webapps">
    <Context path="" docBase="/tomcatstuff/"/>
</Host>
28
JoseK