HTTPD は同じポートを複数回使用します。

HTTPD は同じポートを複数回使用します。

私はApacheが前にあるクラスタで3つのTomcat(別のhttpdおよびAJP13ポート)を実行しています。

1つのTomcatだけがまだ実行されているように見え、残りの2つのエラーはjkstatus管理者にあります。

スクリーンショット

エラーログは、ポートがバインドされたことを示します。

30-Oct-2017 21:53:09.794 SEVERE [main] org.apache.catalina.core.StandardServer.await StandardServer.await: create[localhost:8006]: 
 java.net.BindException: Address already in use (Bind failed)
        at java.net.PlainSocketImpl.socketBind(Native Method)
        at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
        at java.net.ServerSocket.bind(ServerSocket.java:375)
        at java.net.ServerSocket.<init>(ServerSocket.java:237)
        at org.apache.catalina.core.StandardServer.await(StandardServer.java:441)
        at org.apache.catalina.startup.Catalina.await(Catalina.java:758)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:704)

netstatを実行すると、同じプロンプトが表示されます。

[root@dev logs]# netstat -anop | grep 8009
tcp6       0      0 :::8009                 :::*                    LISTEN      28887/java           off (0.00/0/0)
tcp6       0      0 ::1:8009                ::1:58801               ESTABLISHED 28887/java           off (0.00/0/0)
tcp6       0      0 ::1:58791               ::1:8009                ESTABLISHED 29719/httpd          off (0.00/0/0)
tcp6       0      0 ::1:58801               ::1:8009                ESTABLISHED 29709/httpd          off (0.00/0/0)
tcp6       0      0 ::1:8009                ::1:58807               ESTABLISHED 28887/java           off (0.00/0/0)
tcp6       0      0 ::1:58807               ::1:8009                ESTABLISHED 29705/httpd          off (0.00/0/0)
tcp6       0      0 ::1:8009                ::1:58803               ESTABLISHED 28887/java           off (0.00/0/0)
tcp6       0      0 ::1:58803               ::1:8009                ESTABLISHED 29706/httpd          off (0.00/0/0)
tcp6       0      0 ::1:8009                ::1:58805               ESTABLISHED 28887/java           off (0.00/0/0)
tcp6       0      0 ::1:58805               ::1:8009                ESTABLISHED 29708/httpd          off (0.00/0/0)
tcp6       0      0 ::1:8009                ::1:58791               ESTABLISHED 28887/java           off (0.00/

私は別のTomcatインスタンスのserver.xmlファイルを調べましたが、http / ajp13ポートが再利用されるのを見ることができませんでした。

原因は何か知っていますか?

答え1

私はあなたがすでにこれを知っているという印象を受けました。同じIPアドレスでリッスンするTomcatインスタンスを実行しているため、Tomcatが使用するすべてのポートが各インスタンスで異なる設定になっていることを確認する必要があります。これにはポートのクローズが含まれます。たとえば、8006、8007、および8008を使用できます(他のポートがこれらのポートを使用していないと仮定)。

あるいは、コンテナを使用してインスタンスまたはネットワーク名前空間をホストすることがあります。これにより、すべてのインスタンスで同じポートを使用できます。

関連情報