私は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を使用できます(他のポートがこれらのポートを使用していないと仮定)。
あるいは、コンテナを使用してインスタンスまたはネットワーク名前空間をホストすることがあります。これにより、すべてのインスタンスで同じポートを使用できます。