Tomcatの複数のインスタンスを実行しようとしていますが、2番目のインスタンスをリッスンおよびシャットダウンするために異なるポートを構成した後でも、8080(8081用に構成)でリッスンしようとし続けます。 CATALINA_BASE
に別の値を設定する必要があることを読みました。オンラインにあるすべての記事から、この変数を設定できるファイルが実際に示されている記事はありません。
C:\Apache-Tomcat-7.0.39
のTomcatインスタンスにCATALINA_BASEを設定する場所と方法
私が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
に触れる必要はありません。
C:\ Apache-Tomcat-7.0.39にあるTomcatフォルダーが1つだけあり、そこから2つのインスタンスを実行したいとします。
CATALINA_HOME system/user変数が設定されており、C:\ Apache-Tomcat-7.0.39を指していることを確認してください
C:\ instance1フォルダーを作成します。 C:\ Apache-Tomcat-7.0.39からconf、webappsおよびtempフォルダーをコピーし、C:\ instance1に貼り付けます。 instance1の下にあるwebappsおよびtempフォルダーからコンテンツを削除できますが、conf contentsには触れないでください。
次に、C>\instance1をコピーして貼り付け、instance2に名前を変更します。これにより、instance1とinstance2の両方が同じコンテンツになります。
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" />
必要なものをinstance1\webappsおよびinstance2\webappsにデプロイします
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を呼び出す
CATALINA_BASEディレクトリを設定して複数のインスタンス用にTomcatを設定していない場合、$ CATALINA_BASEは、Tomcatをインストールしたディレクトリである$ CATALINA_HOMEの値に設定されます。
最も簡単な方法は、別のTomcat 8または9をダウンロードし、インストール中にインストールして、すべてのポート番号を変更することです。既存のインスタンスをコピーし、server.xmlでポート番号をほとんど変更しないと、サービスでエラーが発生する可能性があります。