2013-12-23 24 views
5

在我们的环境中,我们一致地在错误日志中获得这些条目。Apache错误日志中的mod群集代理超时

[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 

如果一旦网站将抛出一个998响应代码,直到重新启动,这使得这些错误消失从所有节点出现这些错误。 Apache正在与后端jboss服务器进行通信。

什么可能导致这些问题。根据我的观察,这可能是由于web服务调用延迟导致AJP连接终止。

如果我错了,请纠正我,这个问题如何永久解决。

谢谢。

+0

任何想法家伙,我真的需要这样的帮助... :( – krish3

回答

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 

害得我找这样的:

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

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

你可以尝试增加你的超时时间,或者更有可能找出页面缓慢的原因。

+0

谢谢回答.. 你正确我最近发现的应用程序调用一个被调用了一个无效的参数,它从来没有返回一个响应频繁导致这个问题,现在它是固定的。 – krish3

0

我解决了这个误差便接踵而来:

<Proxy *> 
    AddDefaultCharset Off 

    Order deny,allow 

    Allow from all 

</Proxy> 

ProxyPass/ajp://backend.example.com:8009/ retry=0 timeout=10 ttl=60 

ProxyPassReverse/ajp://backend.example.com:8009/