我在 mod_jk.log 文件中看到了垃圾邮件,其中包含以下错误消息:jk_connect.c (593): 连接到 127.0.0.1:8009 失败 (errno=61)
Tomcat 运行正常,Apache 和 Tomcat 之间没有配置防火墙(它们都在同一台机器上运行),8009 上有一个监听器。连接器一次正常运行几天,然后开始使用上述消息向日志文件发送垃圾邮件,用于所有新连接。
一旦垃圾邮件开始,我发现恢复的唯一方法是先重新启动 Tomcat,然后重新启动 Apache。
造成此类问题的最可能原因是什么?
答案1
这可能有多种原因:
- tomcat 没有运行
- tomcat 正在运行,但未配置端口 8009 的连接器
- tomcat 正在运行,但是 apache 和 tomcat 之间的防火墙不允许端口 8009 上的流量(在您的环境中不应该出现这种情况)
- tomcat 正在运行,但未监听此 ip
答案2
就在本周,我在全新安装时遇到了完全相同的问题。我从一个 Tomcat 5.5 安装中复制了所有内容,文件一一对应,而 Tomcat 5.5 的运行完全符合预期,所以这确实是一个令人费解的情况。
因此我运行了 TCPView 并且看到 AJP 没有绑定在 TCP 的端口 8009 上(但它绑定在 TCPv6 上!wth...)
看起来 Tomcat 的更高版本,或者 isapi_redirect.dll 或 Tomcat5w.exe(Tomcat 服务)似乎是“TCPv6 感知的”,而这正是问题开始的地方。
好消息是,您可以将 server.xml 中的“地址”属性设置为 IPv4 地址,例如:
<Connector address="192.168.1.109" port="8080"
... 为您的网络服务和
<Connector address="192.168.1.109" port="8009"
... 用于 ajp/1.3 连接器
请注意,无论您将地址设置为何,请确保您的 worker.properties 文件具有相同的设置,例如:
worker.ajp13w.host=192.168.1.109
...看起来这就是全部内容了。