TMD45'β'LOG!!!

Life is Beta-ful.

Tomcat のみでバーチャルホストを設定する

apache-tomcat-5.5.15, Eclipse, WindowsXP

(例に示した設定ファイルは部分的に抜き出しているのでそのままでは利用できません。かつ、業務でいろいろいじられているのでデフォルトから変更されていたり、おかしなところがあるかもしれない。パスとかは hoge。)

開発環境で動かしてる Java アプリを localhost 以外のアドレスからアクセスしたかったので。

設定ファイルに Host を追加する

Tomcat の server.xml に Host 要素を追加:

<Service name="Catalina">

  <Connector port="8080" maxHttpHeaderSize="8192"
             maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
             enableLookups="false" redirectPort="8443" acceptCount="100"
             connectionTimeout="20000" disableUploadTimeout="true"
             useBodyEncodingForURI="true"
   />

  <Connector port="8009" 
             enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />

  <!-- このエンジンのデフォルトホストは localhost -->
  <Engine name="Catalina" defaultHost="localhost">

    <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
           resourceName="UserDatabase"/>

    <!-- デフォルトのホスト設定 -->
    <Host name="localhost" appBase="webapps"
          unpackWARs="true" autoDeploy="true"
          xmlValidation="false" xmlNamespaceAware="false">

      <Context path="/WebApps" cookies="true" reloadable="true"
               docBase="C:\project\eclipse\workspace\webapps\WebContent"
               workDir="C:\project\eclipse\workspace\webapps\work" />

    </Host>

    <!-- バーチャルホスト設定 -->
    <Host name="javahoge.local" appBase="webapps2"
          unpackWARs="true" autoDeploy="true"
          xmlValidation="false" xmlNamespaceAware="false">

      <Context path="/WebApps2" cookies="true" reloadable="true"
               docBase="C:\project\eclipse\workspace\webapps2\WebContent"
               workDir="C:\project\eclipse\workspace\webapps2\work" />

    </Host>

  </Engine>

</Service>

それだけ。
今回は Host 内にコンテキスト設定も入れてるけど、バーチャルホストには関係ない。

hosts にホスト名を設定

あとは Apache のバーチャルホストの設定と同様に、hosts に必要なホスト名を追加してやる必要がある。

Host 要素の name 属性に指定したホスト名を hosts に追加:

127.0.0.1       localhost
127.0.0.1       javahoge.local

設定完了したら Tomcat を再起動

忘れずに。

▲ ページトップへ移動