Warm tip: This article is reproduced from serverfault.com, please click

nginx-Tomcat 9总是提供已用于http / https连接器的地址

(nginx - Tomcat 9 always gives Address already in use for http/https connectors)

发布于 2020-11-07 03:52:46

我们最近在Centos上将tomcat从版本7升级到了tomcat9.x。当我们启动tomcat时,我们看到以下错误-org.apache.catalina.util.LifecycleBase.handleSubClassException无法初始化组件[Connector [HTTP / 1.1-8080]],其原因是:java.net.BindException:地址已在使用中

Server.xml更改:连接器端口=“ 8060”协议=“ org.apache.coyote.http11.Http11Protocol” redirectPort =“ 8080” proxyName =“ myproxy” proxyPort =“ 443” scheme =“ https” />即使catalina。 out显示此错误,我们的应用程序运行正常。我们验证了端口8080上没有其他服务正在运行,并且当我们切换回tomcat 7时,日志中没有显示错误。我们确实将nginx作为tomcat的反向代理,但它侦听端口80和443,并在端口8060(http://127.0.0.1:8060上与tomcat9进行通信现在,我们已经花了整整2天的时间解决此问题,我们将不胜感激。

抱歉,你不知道,Connector中redirectPort的作用是什么?在上述情况下,这是否意味着nginx将在端口8060上与tomcat通信,并且tomcat将在内部将请求重定向到端口8080?

提前致谢。

Questioner
NJavalearner
Viewed
11
NJavalearner 2020-12-10 08:20:23

解决了该问题,Jboss在同一端口的同一台虚拟机上运行,​​这导致“地址已在使用中”错误。

lsof -n -i:80 | grep LISTEN->命令查找在端口8080上运行的pid

ps -ef | grep pid->查看指定pid上正在运行的内容。