大约 15 年以来,我一直在 Tomcat 前面使用 Apache Web 服务器,并使用 ajp 在两者之间进行通信。现在,我尝试升级到 tomcat 10(一种情况是从 tomcat 5,另一种情况是 tomcat 7),但该组合无法像以前一样工作。 /var/log/httpd/mod_jk_log 不断告诉我“Tomcat 可能未启动或正在侦听错误的端口”
[Mon Jul 24 13:36:25.246 2023] [523293:140686862894848] [info] jk_open_socket::jk_connect.c (815): connect to ::1:8009 failed (errno=111)
[Mon Jul 24 13:36:25.246 2023] [523293:140686862894848] [info] ajp_connect_to_endpoint::jk_ajp_common.c (1064): (wkr01) Failed opening socket to (::1:8009) (errno=111)
[Mon Jul 24 13:36:25.246 2023] [523293:140686862894848] [error] ajp_send_request::jk_ajp_common.c (1724): (wkr01) connecting to backend failed. Tomcat is probably not started or is listening on the wrong port (errno=111)
[Mon Jul 24 13:36:25.246 2023] [523293:140686862894848] [info] ajp_service::jk_ajp_common.c (2774): (wkr01) sending request to tomcat failed (recoverable), because of error during request sending (attempt=1)
好像不是这样的
catalina.out 告诉我连接器在那里:
24-Jul-2023 12:47:03.423 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-127.0.0.1-8009"]
SS 同上:
$ ss -nat
LISTEN 0 100 [::ffff:127.0.0.1]:8009 *:*
我可以使用 netcat 连接到环回端口 8009,但我不知道要发送什么来确定它是 ajp 侦听器。这将是我的下一个搜索。
selinux 设置为宽容(我会担心稍后打开它),因此这不太可能是原因。
我这样定义连接器:
<Connector port="8009" enableLookups="false" redirectPort="8080"
protocol="AJP/1.3" secretRequired="true"
secret="2a28.W6AtwbmYvgMgr880oo+EGuWxohr" />
还有工人
workers.tomcat_home=/var/jakarta/tomcat
workers.java_home=/usr/java/default
worker.list=wkr01, jkstatus
worker.jkstatus.type=status
worker.wkr01.type=ajp13
worker.wkr01.host=localhost
worker.wkr01.port=8009
worker.wkr01.lbfactor=50
worker.wkr01.connection_pool_timeout=600
worker.wkr01.socket_keepalive=True
worker.wkr01.socket_timeout=300
worker.wkr01.secret="2a28.W6AtwbmYvgMgr880oo+EGuWxohr"
OS: Oracle Linux 8
Apache Web Server: 2.4.37
Tomcat: 10.1.10
我已经用尽了我对 Tomcat 的了解。有什么建议吗?