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

Apache与Tomcat AJP端口连接失败(errno=13)问题排查咨询

问题排查与解决方案

先抓核心线索:日志里的errno=13对应的是Permission denied(权限被拒绝),结合你的Apache+Tomcat AJP配置场景,主要从这几个方向入手排查:

1. SELinux 拦截(最常见原因)

Linux系统的SELinux默认会限制Apache(httpd)进程连接非标准端口。AJP默认的8009端口是被SELinux允许的,但你自定义的1983不在允许列表里,所以直接被拦了。

验证与解决:

  • 先临时关闭SELinux测试(仅用来确认问题):
    setenforce 0
    
    之后再发起请求,如果能正常连接,那肯定是SELinux的锅。
  • 永久把1983端口加入SELinux允许列表:
    semanage port -a -t http_port_t -p tcp 1983
    
    执行完重启Apache服务就生效了。

2. 确认Tomcat的AJP端口真在监听

日志里提示Tomcat可能没启动或端口不对,先在Tomcat服务器上确认端口状态:

ss -tulpn | grep 1983

如果看不到java进程监听0.0.0.0:1983,那说明Tomcat的AJP配置没生效:

  • 检查server.xml里的AJP Connector配置,确保没被注释,且address="0.0.0.0"允许外部访问;
  • 重启Tomcat让配置生效。

3. 防火墙/安全组检查

虽然errno=13不是典型的防火墙拒绝(通常防火墙拒接是errno=113),但还是要确认Apache服务器能通Tomcat的1983端口:
在Apache服务器上跑个telnet测试:

telnet serapp.abcapp.com 1983

如果连不上,检查Tomcat服务器的防火墙(firewalld/iptables)或者云安全组,是否给Apache服务器的IP开放了1983端口。

4. 额外小检查

  • 确认worker.properties的权限:Apache进程(一般是apache或httpd用户)得能读这个文件,设置成644就没问题;
  • 有些Tomcat版本默认会注释掉AJP Connector,再检查下server.xml里的配置是不是真的启用了。

内容的提问来源于stack exchange,提问作者Java-Seekar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:16:16