You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache与后端Tomcat连接失败报503错误求助

Apache与Tomcat跨主机AJP连接失败排查方案

环境信息

  • Apache服务器:10.176.165.21,RHEL 7.9,Apache/2.4.6
  • Tomcat服务器:10.176.165.22,RHEL 7.9,Apache Tomcat/9.0.80
  • 连接方式:mod_jk + AJP 1.3

问题现象

已完成Apache侧mod_jk及workers配置,Tomcat侧AJP端口8009已监听且防火墙放行,但mod_jk日志持续出现连接拒绝错误(errno=111):

[Thu Oct 05 04:37:08.658 2023] [ZR51tP-yAAFF7pqs0XfINAAAAAM] [26749:140710419421312] [info] jk_open_socket::jk_connect.c (818): connect to 10.176.165.22:8009 failed (errno=111)
[Thu Oct 05 04:37:08.658 2023] [ZR51tP-yAAFF7pqs0XfINAAAAAM] [26749:140710419421312] [info] ajp_connect_to_endpoint::jk_ajp_common.c (1092): (worker1) Failed opening socket to (10.176.165.22:8009) (errno=111)
[Thu Oct 05 04:37:08.658 2023] [ZR51tP-yAAFF7pqs0XfINAAAAAM] [26749:140710419421312] [error] ajp_send_request::jk_ajp_common.c (1768): (worker1) connecting to backend failed. Tomcat is probably not started or is listening on the wrong port (errno=111)
[Thu Oct 05 04:37:08.658 2023] [ZR51tP-yAAFF7pqs0XfINAAAAAM] [26749:140710419421312] [info] ajp_service::jk_ajp_common.c (2892): (worker1) sending request to tomcat failed (recoverable), because of error during request sending (attempt=1)

排查与解决

1. 核心问题定位:Tomcat AJP监听接口限制

查看Tomcat的server.xml中AJP连接器配置:

<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector protocol="AJP/1.3"
           address="::1"
           port="8009"
           maxParameterCount="1000"
           />

address="::1"表示Tomcat仅在IPv6本地回环接口监听8009端口,而Apache服务器通过IPv4地址(10.176.165.21)发起连接,因此无法建立通信。

2. 修改Tomcat AJP监听配置

修改server.xml中的AJP Connector,将address字段改为以下任意一种:

  • 监听所有IPv4接口:address="0.0.0.0"
  • 监听Tomcat服务器的IPv4地址:address="10.176.165.22"
  • 直接删除address属性(默认监听所有网络接口,包括IPv4和IPv6)

修改后的配置示例:

<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector protocol="AJP/1.3"
           port="8009"
           maxParameterCount="1000"
           />

3. 验证监听状态

重启Tomcat服务后,在Tomcat服务器上执行以下命令,确认8009端口监听的是IPv4接口:

ss -tulpn | grep 8009

正常输出应包含0.0.0.0:8009或10.176.165.22:8009,而非::1:8009。

4. 额外验证(可选)

从Apache服务器测试与Tomcat 8009端口的连通性:

telnet 10.176.165.22 8009

若能建立连接,则网络层面无问题;若仍失败,需再次检查防火墙规则或路由配置。

5. 重启服务

  • 重启Tomcat服务:systemctl restart tomcat(根据实际服务名调整)
  • 重启Apache服务:systemctl restart httpd

完成以上步骤后,mod_jk即可正常连接Tomcat的AJP端口。

内容的提问来源于stack exchange,提问作者Raboddep boddep

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 11:43:20