web-dev-qa-db-ja.com

Tomcatの複数のインスタンスを同時に

Tomcatの複数のインスタンスを実行しようとしていますが、2番目のインスタンスをリッスンおよびシャットダウンするために異なるポートを構成した後でも、8080(8081用に構成)でリッスンしようとし続けます。 CATALINA_BASEに別の値を設定する必要があることを読みました。オンラインにあるすべての記事から、この変数を設定できるファイルが実際に示されている記事はありません。

C:\Apache-Tomcat-7.0.39のTomcatインスタンスにCATALINA_BASEを設定する場所と方法

24
Bruno Klein

私がTomcatの2つのコピーを実行した最も簡単な方法は、次の手順を必要としました(私はTomcatの6つのバージョンと7つの異なるバージョンを実行しようとしていました):

  • 異なるフォルダにTomcatの2つのコピーを作成します(異なるバージョンの場合、これは簡単です。同じバージョンの場合、他の方法で区別する必要があります。Tomcatを実行するために作成するファイルがたくさんあります。同じ作業ディレクトリを持つ2つのインスタンスはおそらく不可能です)

  • server.xmlでTomcatがリッスンしている次のポートを変更します

    • <Connector port="8080"> <-これは、TomcatがHTTP要求に応答するために使用するポートです
    • <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <-これは、AJPコネクタ(ApacheまたはIISサーバー)の背後でTomcatを使用する場合に使用)とHTTPSトラフィックに使用されるポート用の2つのポートを定義します
    • <Server port="8005" shutdown="SHUTDOWN"> <-これは、TomcatがSHUTDOWNイベントに応答するために使用するポートです

最後に、これをWindowsサービスとして実行している場合は、インスタンスごとに異なるサービス名を設定する必要があります(セットアップ中にこれを行うことができます。Tomcat7のデフォルトはTomcat7です)。 Tomcatが実行されると、そのすべての構成フィールドは相対パスを使用するため、CATALINA_BASEに触れる必要はありません。

32
Jason Sperske

C:\ Apache-Tomcat-7.0.39にあるTomcatフォルダーが1つだけあり、そこから2つのインスタンスを実行したいとします。

CATALINA_HOME system/user変数が設定されており、C:\ Apache-Tomcat-7.0.39を指していることを確認してください

  1. C:\ instance1フォルダーを作成します。 C:\ Apache-Tomcat-7.0.39からconfwebappsおよびtempフォルダーをコピーし、C:\ instance1に貼り付けます。 instance1の下にあるwebappsおよびtempフォルダーからコンテンツを削除できますが、conf contentsには触れないでください。

  2. 次に、C>\instance1をコピーして貼り付け、instance2に名前を変更します。これにより、instance1instance2の両方が同じコンテンツになります。

  3. C:\ instance2\confに移動し、server.xmlを編集して、これらのポートの番号を変更します(XXXXとしてマークしました)。

    <Server port="XXXX" shutdown="SHUTDOWN">

    <Connector port="XXXX" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

    <Connector port="XXXX" protocol="AJP/1.3" redirectPort="8443" />

  4. 必要なものをinstance1\webappsおよびinstance2\webappsにデプロイします

  5. C:\の下に次の4つのバッチファイルを作成します。

instance1_startup.bat

@エコーオフ

cATALINA_BASE = C:\ instance1を設定します

cd "%CATALINA_HOME%\ bin"

tITLE = My Tomcat Instance 01を設定します

startup.bat%TITLE%を呼び出します

instance1_shutdown.bat

@エコーオフ

cATALINA_BASE = C:\ instance1を設定します

cd "%CATALINA_HOME%\ bin"

shutdown.batを呼び出す

instance2_startup.bat

@エコーオフ

cATALINA_BASE = C:\ instance2を設定します

cd "%CATALINA_HOME%\ bin"

tITLE = My Tomcat Instance 02を設定します

startup.bat%TITLE%を呼び出します

instance2_shutdown.bat

@エコーオフ

cATALINA_BASE = C:\ instance2を設定します

cd "%CATALINA_HOME%\ bin"

shutdown.batを呼び出す

  1. instance1_startup.batおよびinstance2_startup.batを実行します。うまくいけばうまくいきます。
50
Goran Vasic

CATALINA_BASEディレクトリを設定して複数のインスタンス用にTomcatを設定していない場合、$ CATALINA_BASEは、Tomcatをインストールしたディレクトリである$ CATALINA_HOMEの値に設定されます。

1
Alpesh Gediya

最も簡単な方法は、別のTomcat 8または9をダウンロードし、インストール中にインストールして、すべてのポート番号を変更することです。既存のインスタンスをコピーし、server.xmlでポート番号をほとんど変更しないと、サービスでエラーが発生する可能性があります。

0