47

2つのポートで同時にリッスンするようにTomcatサーバーを展開したいと考えています(両方ともhttpプロトコル用)。

この要件を正しく理解していることを確認するために、サーバー インスタンスは 1 つしかありませんが、HTTP プロトコルを 2 つのポートでリッスンしたいと考えています。たとえば、ポート番号 7080 および 8080 を使用して、サーバーにデプロイされたアプリケーションに誰でもアクセスできます。

それは可能ですか?可能であれば、どうすればこれを達成できますか?

4

6 に答える 6

48

とても簡単です。必要なconf/server.xmlポートの新しいコネクタを追加するには、構成ファイルを確認するだけです。たとえば、次のようなコネクタがあるとします。

<Connector port="8080" 
           protocol="HTTP/1.1" 
           connectionTimeout="20000" 
           redirectPort="8443" 
           URIEncoding="UTF-8" />

構成ファイルに上記と同じ新しいコネクタを追加するだけですが、ポート パラメータを変更します。それで全部です。再起動して完了です。

于 2013-03-05T18:15:56.700 に答える
22

はい、可能です。server.xml (conf という名前のフォルダーにあります) を次のように編集するだけです。

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />
<Connector port="8081" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8444" />

これにより、Tomcat がポート80808081の両方をリッスンするようにセットアップされます。

ドキュメントには次のように記載されています。

  • port:このコネクタがサーバー ソケットを作成し、着信接続を待機する TCP ポート番号。ご使用のオペレーティング システムでは、特定の IP アドレスの特定のポート番号をリッスンできるサーバー アプリケーションは 1 つだけです。特別な値 0 (ゼロ) を使用すると、Tomcat はこのコネクタに使用する空きポートをランダムに選択します。これは通常、組み込みおよびテスト アプリケーションでのみ役立ちます。

  • redirectPort:このコネクタが非 SSL 要求をサポートしており、照合<security-constraint>に SSL トランスポートが必要な要求を受信した場合、Catalina はその要求をここで指定されたポート番号に自動的にリダイレクトします。

そのため、このようなリダイレクトをどのように機能させたいかによって、redirectPort の変更はオプションです。

于 2013-03-05T18:15:52.083 に答える
18

/conf/server.xml で 2 つの異なるサービスを定義できます。

例は以下のとおりです。

<Service name="Catalina_2">
    <Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8444" />
    <Connector port="8010" protocol="AJP/1.3" redirectPort="8444" />
    <Engine name="Catalina_2" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
      </Realm>
      <Host name="localhost"  appBase="webapps_2" unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>
    </Engine>
  </Service>


  <Service name="Catalina">
    <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
      </Realm>
      <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>
    </Engine>
  </Service>

: Tomcat のヒープ サイズを増やす必要がある場合があります。

于 2014-12-24T09:32:42.403 に答える
4

server.xml で次のコードを指定できます。

<Service name="sample">

    <Connector port="81" protocol="HTTP/1.1" maxThreads="100" connectionTimeout="2000"/>

    <Engine name="sample" defaultHost="sample">
         <Host name="myhostname" appBase="webapp2">
             <Context docBase="C:\websites\sample\" />
         </Host>
     </Engine>

</Service>
于 2013-03-05T18:22:55.160 に答える