2010-12-06 5 views
11

別のポートで動作するtomcatに複数のJava Webアプリケーションをデプロイするにはどうすればいいですか? - 別のWebアプリケーションが異なるポートで動作するように設定する方法 - これを達成するために必要なことは何ですか?別のポートで動作するtomcatに複数のWebアプリケーションをデプロイするには?

+0

異なるポートが必要な理由は何ですか? – JoseK

+0

http://stackoverflow.com/questions/8823290/how-to-run-different-apps-on-single-tomcat-instance-behind-different-ports – sab

答えて

4

複数のTomcatをインストールすることをお勧めします。それはより簡単だろう。

複数の<Connector>server.xmlに登録して、コンテキストを除外することはできますが、それは退屈で間違っているようです。

+2

1つのTomcatサーバーでのみ行う方法を知りたい..私は複数のサーバーを望んでいません。 – LetsSyncUp

+3

複数のサーバーを使用するのではなく、そのオプションを選択する理由は何ですか? – Bozho

6

server.xmlファイル(tomcat_home/conf)に別のサービスを設定する必要があります。あなたは、サーバーのファイルを変更したhavent場合、あなたはすでに、名前がDEV2へカタリナから変更されたことカタリナという名前の1(私はTomcatの5.5を使用しています、あなたはバージョンによってわずかに異なる何かを持っている場合があります)

<Service name="Dev2"> 
    <Connector port="8090" maxHttpHeaderSize="8192" 
       maxThreads="150" minSpareThreads="25" maxSpareThreads="75" 
       enableLookups="false" redirectPort="8443" acceptCount="100" 
       connectionTimeout="20000" disableUploadTimeout="true" /> 
    <Connector port="8092" 
       enableLookups="false" redirectPort="9443" protocol="AJP/1.3" /> 

    <Engine name="Dev2" defaultHost="MyDev"> 
     <Realm className="org.apache.catalina.realm.UserDatabaseRealm" 
      resourceName="UserDatabase"/> 
     <Host name="MyDev" appBase="webapps" 
     unpackWARs="true" autoDeploy="true" 
     xmlValidation="false" xmlNamespaceAware="false"> 
     </Host> 
    </Engine> 
</Service> 

お知らせを持つべきですローカルホストからMyDevへあなたのアプリケーションに適したものに変更してください。ポートとコネクタも変更されています。 新しいサービスが設定されたら、適切なサービス/ポートにアプリケーションを展開する必要があります。あなたがしなければならないすべてが追加された(Virtual Hostingを参照)の下でXMLファイルを使用することにより、あなたはこの時点で

を設定している各ポートのための

Tomcat_Home/conf/Catalina/localhost/ 

Tomcat_Home/conf/Dev2/MyDev/ 

をこれを実現しますサービスをあなたのアプリケーションに向けるためのファイルがさらにいくつかあります。例として 、Tomcat_Home/conf/Dev2/MyDev/の下で私はAnother.xmlと呼ばれるファイルは、このファイルには、以下の

<Context path="/" docBase="C:/to_delete" debug="10" crossContext="false"> 
</Context> 

私は試してみて、私のデフォルトのポートを使用して、これをアクセスする場合今、私は、Webアドレスhttp://127.0.0.1:8090/Another を使用して、新しいアプリケーションにアクセスすることができますが含まれてい8080の場合、そのポートに対してアプリケーションがデプロイされていないため、エラーが表示されます。

この設定に関する注意点はほとんどありません。 VirtualVMを使ってアプリケーションを見ると、それらが同じプロセスIDを共有していることがわかります。したがって、あなたはあなたのリソースを十分に注意する必要があります。彼らは同じヒープスペースを使用し、すべてのスレッドが同じリストに表示されます。アプリケーション(Log4jなど)にログインしている場合は、作業を行っていたスレッドを表示するオプションがあることを確認してください。

Bozhoは既に指摘しているように、複数のポートでリッスンするサーバーが1つではなく、2つのTomcatインスタンスを実行する方が簡単かもしれません。

4

これを回答して申し訳ありません。私はこの質問について私にコメント力はありません。 Mabyeは質問が古すぎたり、私の評判が十分ではありません。

しかし、私は同じ質問を自分自身で研究しています。 Tomcat、httpサーバー、およびJavaシステム環境が同じインスタンスを使用する方法についてもっと知る必要があります。私はそれもまた非常に遅い場所を読んだ。

最高の賭けは別々のインスタンスです。ユーザーインスタンスごとに独自の http://ubuntuforums.org/showthread.php?t=1211517 http://code.google.com/p/tomcat-linux/

B /、: Aは/ Ubuntuのために、このスクリプトを取得するにはSVNを使用することができます。それを行うには、2つの非常に簡単な方法があります。 http://brian.pontarelli.com/2007/09/17/multiple-tomcat-instances-on-ubuntu/

最後にTomcat 5.5のために書かれた、おそらくTomcatの6しかし

に適応可能であるた、TomcatをLinux上で最新のために複数のJVMインスタンスのための最善の方向はここにある: http://www.puschitz.com/InstallingTomcat.html

+0

Welllll、 'source'コマンドはUbuntuでは 'su'環境では動作しません。さらに、上記の「puschitz.com」リンクは、server.xmlファイルに「Context」要素を追加する必要があります。私は動作しているTomcat6サーバーを持っていて、そこにその要素を持つコンピュータ上にserver.xmlファイルはありません。私はこれらの理由でpuschitz.comのアプローチを働かせることはできません。だから私はそのリンクを離れます。私はまだ今自分自身を見ている。 – Dennis

2

Apacheでmod-proxyを使用してカスタムポートを標準ポートにリダイレクトすることができます。

mod proxy

関連する問題