現在、Tomcat 6で実行されている2つのWebアプリケーションapp1とapp2があります。
個別のポートの背後でルートコンテキストで実行されるようにTomcatを構成します。
何をする必要がありますか?
あなたはあなたにそれを設定できると思いますserver.xmlファイルと2つのサービスを入れてください:
<Service name="app1">
<Connector port="8081" protocol="org.Apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="app1"
unpackWARs="true" autoDeploy="true">
</Host>
</Engine>
</Service>
<Service name="app2">
<Connector port="8082" protocol="org.Apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="app2"
unpackWARs="true" autoDeploy="true">
</Host>
</Engine>
</Service>
コネクタを追加する別の例:
<Service name="reciver">
<Connector port="8080" maxHttpHeaderSize="8192" maxThreads="10"
enableLookups="false" acceptCount="100"
connectionTimeout="10000" disableUploadTimeout="true"
useBodyEncodingForURI="true"/>
<Engine name="reciver" defaultHost="localhost" jvmRoute="Host1">
<Realm className="org.Apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase" />
<Host name="localhost" appBase="webapps" unpackWARs="true"
autoDeploy="false" xmlValidation="false"
xmlNamespaceAware="false">
<Context docBase="browser" path="/browser" reloadable="false"/>
</Host>
</Engine>
</Service>
<Service name="reciver2">
<Connector port="8081" maxHttpHeaderSize="8192" maxThreads="10"
enableLookups="false" acceptCount="1"
connectionTimeout="10000" disableUploadTimeout="true"
useBodyEncodingForURI="true" proxyName="example.pt" proxyPort="80"/>
<Engine name="reciver2" defaultHost="example_app" jvmRoute="Host2">
<Host name="example_app" appBase="test_app/example_app" unpackWARs="true"
autoDeploy="false" xmlValidation="false"
xmlNamespaceAware="false">
<Context docBase="example_app" path="/example_app" reloadable="false"/>
</Host>
</Engine>
</Service>
(...Repeted 2 more times.)
から取得: http://www.coderanch.com/t/84172/Tomcat/listen-multiple-ports
スレッド全体を読むことをお勧めします。これは、この構成でのパフォーマンスヒットと、可能な競合状態について説明しているためです。
2つのTomcatインスタンスを実行し、ROOTアプリケーションを使用することに加えて(すでに述べており、少し貧弱で効果のないソリューションです)、Apache + Tomcatを使用してそれを実現できます。両方のポートをリッスンし、IP:Portで異なるTomcatアプリケーションに転送するようにApacheを構成します。ただし、Tomcatには別のポートが必要です!
Apacheの構成
listen 8080,8081
...
<VirtualHost *:8080>
ServerName localhost
ProxyPass / http://localhost:8888/app1
ProxyPassReverse / http://localhost:8080/app1
</VirtualHost>
<VirtualHost *:8081>
ServerName localhost
ProxyPass / http://localhost:8888/app2
ProxyPassReverse / http://localhost:8080/app2
</VirtualHost>
または
listen 80,81
...
<VirtualHost *:80>
ServerName localhost
ProxyPass / http://localhost:8080/app1
ProxyPassReverse / http://localhost:8080/app1
</VirtualHost>
<VirtualHost *:81>
ServerName localhost
ProxyPass / http://localhost:8080/app2
ProxyPassReverse / http://localhost:8080/app2
</VirtualHost>
Tomcatは、次で指定されたポートで実行されます。
$CATALINA_HOME/conf/server.xml
JB Nizetが書いたように、Tomcatの2つの異なるインスタンスをセットアップし、ポート値server.xmlを適切に構成します。
$ CATALINA_HOME/Tomcat-8081/conf/server.xml:
<?xml version='1.0' encoding='utf-8'?>
<Server port="8081" ... >
...
</Server>
$ CATALINA_HOME/Tomcat-8082/conf/server.xml:
<?xml version='1.0' encoding='utf-8'?>
<Server port="8082" ... >
...
</Server>