【发布时间】:2021-09-06 04:37:39
【问题描述】:
自从从 tomcat8 升级到 tomcat9 后,我们遇到了一个奇怪的问题。
- tomcat9 有时不再响应。
- 不再可访问所有已部署的战争应用程序。
- 话虽如此,apache 代理服务器似乎还可以。
- 只有重新启动 tomcat9 服务才有帮助。
catalina.out 或其他应用日志文件中没有有用的日志条目。
我们唯一的怀疑是它主要发生在热部署war文件时(将war文件移动到apps文件夹而不停止/启动tomcat9)。相比之下,在 tomcat8 上热部署从来都不是问题。
也许这是一个 ajp 问题? 这是我们的连接器配置:
<Connector
port="8009"
protocol="org.apache.coyote.ajp.AjpNio2Protocol"
acceptCount="200"
acceptorThreadCount="2"
address="0.0.0.0"
connectionTimeout="1800000"
maxThreads="400"
minSpareThreads="20"
secretRequired="false"
redirectPort="8443" />
我在这里发现了一些(可能)相关的问题:tomcat hangs when deploying war file and restarting server
那边的人说他们停止了tomcat,部署了战争,然后再次启动了tomcat。
升级到 tomcat9 后有同样问题的人吗?
【问题讨论】:
-
来自 tomcat 9 迁移指南:
default listen address of the AJP Connector was changed to the loopback address rather than all addresses.。另外,你可以从 localhost 访问端口 8080 吗?关闭端口是否可用且响应迅速(通常为 8005)? -
谢谢。你的意思是端口 8443 而不是 8080?由于我们正在重定向到 https ...
-
不管8443,8080端口是否也打开了?如果是这样,尝试连接它或尝试关闭端口 8005 上的 tomcat。两者都知道 tomcat 是否真的挂了。
-
出于安全原因,我们不想开放端口 8080 和 8005。我们只开放 ajp 端口 (8009)