広告

Tomcat に複数のドメインを割り当てる

!!! 半年以上も前に書かれた古い情報です !!!
!!! 半年以上も前に書かれた古い情報です !!!
!!! 半年以上も前に書かれた古い情報です !!!
!!! 半年以上も前に書かれた古い情報です !!!
!!! 半年以上も前に書かれた古い情報です !!!

環境

Tomcat 7.0

内容

Tomcat をインストールしたディレクトリに移動します.
例えば,

$ cd /usr/local/tomcat7

server.xml を編集します.

$ vi conf/server.xml

デフォルトでは Host 部分が下記のようになっています.

<Host name="localhost" appBase="webapps" ...>
 ...
</Host>

デフォルトの Host 部分を削除するなりコメントアウトします.
その後,複数ドメインに対応すべく複数の Host を記述します.
例えば,下記のように example.com、example.net の 2 つのドメインを設定してみます.
双方のドメインにおいて,appBase で Web アプリ用のディレクトリを分け (デフォルトの webapps と新規の webapps2),ログ用のディレクトリも分けています. (デフォルトの logs と 新規の logs2)

<Host name="host1.example.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
  <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
    prefix="localhost_access_log." suffix=".txt"
    pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>
<Host name="host2.example.net" appBase="webapps2" unpackWARs="true" autoDeploy="true">
  <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs2"
    prefix="localhost_access_log." suffix=".txt"
    pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>

設定ファイルで新たに記述したディレクトリを作成しておきます.

$ mkdir webapps2
$ mkdir logs2

確認用に webapps2 のインデックスページを作成しておきます.

$ mkdir webapps2/ROOT
$ vi webapps2/ROOT/index.html

host1.example.com と host2.example.net の名前解決ができる前提で,http://host1.example.com:8080/ と http://host2.example.net:8080/ にアクセスしてみます.
前者はこれまで通りの Tomcat のインデックスページ,後者は新たに作成した webapps2/ROOT/index.html の内容が表示されるはずです.
logs,logs2 の各々にログが生成されていることも確認します.

あとは webapps,webapps2 に各々のドメインで動かしたい war ファイルを配置させます.

Apache との連携

Apache と連携させたい場合は Apache の設定ファイルを編集します.

$ sudo vi /etc/httpd/conf/httpd.conf

例えば,下記のように Apache と連携させたい Web アプリのパスを記述します.

<Location /test_app1/>
        ProxyPass ajp://host1.example.com:8009/test_app1/
</Location>
<Location /test_app2/>
        ProxyPass ajp://host2.example.net:8009/test_app2/
</Location>

設定を反映させます.

$ sudo service httpd restart

http://host1.example.com/test_app1/ や http://host2.example.net/test_app2/ のように TCP:80 でアクセスできることを確認します.

広告

Tomcat

Posted by admin