HTTPD 多次使用同一端口

HTTPD 多次使用同一端口

我在集群中运行3个tomcat(不同的httpd和AJP13端口),前面有一个apache。

看起来只有一个 Tomcat 保持运行,而 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(假设没有其他端口使用这些端口)。

替代方法包括使用容器来托管实例或网络命名空间。这样您就可以在每个实例中使用相同的端口。

相关内容