Ubuntuサーバーで複数のTomcatインスタンスを実行する適切な方法はありますか?
いくつかの検索を行ったところ、2つのオプションが見つかりました。
apt-get
を使用してアップグレードされないことです。別のインスタンスをきれいに実行する他のアイデアはありますか?
前もって感謝します、
アダム
Ubuntu 14.04.3 LTSでこれを設定しています。 Tomcat7
パッケージで提供されるTomcat 7を使用しています。
標準のinitスクリプトを提供することにより、Tomcatをシステムサービスとしてインストールします。
/etc/init.d/Tomcat7
および構成ファイル:
/etc/default/Tomcat7
Tomcatは、同じサーバーソフトウェアで複数のインスタンスを実行することをサポートしています。サーバーソフトウェアは$CATALINA_HOME
にあり、インスタンスのファイルは$CATALINA_BASE
にあります。それらは/etc/init.d/Tomcat7
で次のように定義されています:
NAME=Tomcat7
CATALINA_HOME=/usr/share/$NAME
CATALINA_BASE=/var/lib/$NAME
(注意:後者のファイルを編集するときは、前者へのシンボリックリンクがあることに注意してください。)
Tomcat7-user
パッケージは、追加のTomcatインスタンスのディレクトリツリーを作成するために使用できるユーティリティTomcat7-instance-create
を提供します。これには、インスタンスを手動で開始および停止するスクリプトを含むbin/
ディレクトリが含まれます。
私が見つけていないのは、このような追加のインスタンスをシステムサービスに変換するためのサポートです。したがって、手動で行う必要があります。次のように:
$NAME
になります。Tomcat7
ユーザーと同じである必要があります。Tomcat7-instance-create
を実行して、Tomcatインスタンスを作成します。bin/startup.sh
およびbin/shutdown.sh
スクリプトを使用してテストします。/var/log/$NAME
に移動し、シンボリックリンクして新しいTomcatインスタンスのlogs/
に戻します。/etc/init.d/$NAME
、たとえば/etc/init.d/Tomcat7
をコピーおよび変更し、$NAME
への割り当てを変更します。 (スクリプト全体をコピーする必要はなく、スクリプトへのリンクを作成することができればより良いでしょう。)/etc/default/$NAME
と記述します。upstart-rc.d
を使用して、新しいサービスをインストールします。Kodjo-Kuma Djomedaの詳細 の一部を収集しました。
複数のTomcatインスタンスを実行する代わりに、いくつかのwebappsディレクトリを構成することを検討しましたか?
もちろん、本当に複数のインスタンスが必要な場合もありますが、同じアプリケーションを複数のホストに個別に提供する場合は、server.xmlに複数の宣言を追加することでそれを行うことができます。
<Host name="Host1.example.com" appBase="Host1"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false" />
<Host name="Host2.example.com" appBase="Host2"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false" />
これで、「/ var/lib/Tomcat6/Host1」および「/ var/lib/Tomcat6/Host2」ディレクトリを作成し、それらにWARファイルをデプロイできます。
私は次のことをしました:
tomcatを作成するディレクトリで次のコマンドを実行します。
Tomcat8-instance-create staging
ポートをユニークなものに変更しました(他のTomcat8を実行している場合:
nano conf/server.xml
元のTomcat8と同じユーザーを使用するため、すべてのファイルがTomcat8によって所有されていることを確認します
chown -R Tomcat8:Tomcat8 *
/etc/init.d/にあるTomcat8スクリプトをコピーしました
cp /etc/init.d/Tomcat8 /etc/init.d/Tomcat8_staging
スクリプトを編集して、新しいステージング環境で動作するようにしました。
nano /etc/init.d/Tomcat8_staging
私は次の行を編集する必要がありました:
NAME=Tomcat8_staging
DEFAULT=/etc/default/Tomcat8
CATALINA_BASE=/app/Tomcat8/staging
CATALINA_HOME=/usr/share/Tomcat8
そして最後に、このようにサーバーを有効にしました:
systemctl enable Tomcat8_staging
起動するとき:
service Tomcat8_staging start
ポリシーファイルが見つからないというエラーが発生したため、confディレクトリにそのリンクを作成しました。
ln -s /etc/Tomcat8/policy.d policy.d