apache错误日志中的Mod群集代理超时

kri*_*sh3 5 apache jboss mod-proxy jboss5.x

在我们的环境中,我们在错误日志中始终获得这些条目

[Sun Dec 22 20:29:43 2013] [error] (70007)The timeout specified has expired: ajp_ilink_receive() can't receive header
[Sun Dec 22 20:29:43 2013] [error] ajp_read_header: ajp_ilink_receive failed
[Sun Dec 22 20:29:43 2013] [error] (70007)The timeout specified has expired: proxy: read response failed from (null) (xx.xx.xx.xx)
[Sun Dec 22 20:30:01 2013] [error] (70007)The timeout specified has expired: ajp_ilink_receive() can't receive header
Run Code Online (Sandbox Code Playgroud)

如果这些错误同时出现在所有节点上,则站点将抛出998响应代码,直到重新启动使这些错误消失.Apache正在与后端jboss服务器进行通信.

可能导致这些问题的原因.根据我的观察,这可能是由于webservice调用延迟导致AJP连接终止.

如果我错了,请纠正我,如何永久修复此问题.

谢谢.

小智 1

(迟到总比不到好)

我也有类似的问题;

[Mon Jan 20 13:39:57 2014] [error] (70007)The timeout specified has expired: ajp_ilink_receive() can't receive header
[Mon Jan 20 13:43:26 2014] [error] (70007)The timeout specified has expired: ajp_ilink_receive() can't receive header
Run Code Online (Sandbox Code Playgroud)

这让我发现了这个:

当未定义 nodeTimeout 时,将使用 ProxyTimeout 指令 Proxy。如果未定义 ProxyTimeout,则使用服务器超时 (Timeout)(默认 300 秒)。nodeTimeout、ProxyTimeout 或 Timeout 在套接字级别设置。

我既没有 nodeTimeout 也没有 ProxyTimeout,这给我们留下了 Timeout 变量(设置为 60 秒)。在大多数情况下,60 秒足以返回网页,但对该应用程序的调查显示,错误的 MySQL 查询运行时间超过 20 分钟(是的,几分钟!)。

您可以尝试增加超时,或更可能的是找出页面速度缓慢的原因。