Java 使用AJP连接器和mod_代理在Tomcat前面出现Apache错误
我有一台Apache服务器(服务器版本:Apache/2.2.22(Ubuntu)),在三台tomcat6服务器前面。Apache使用mod_代理和AJP连接器设置为负载平衡器:Java 使用AJP连接器和mod_代理在Tomcat前面出现Apache错误,java,apache,tomcat,mod-proxy,ajp,Java,Apache,Tomcat,Mod Proxy,Ajp,我有一台Apache服务器(服务器版本:Apache/2.2.22(Ubuntu)),在三台tomcat6服务器前面。Apache使用mod_代理和AJP连接器设置为负载平衡器: <VirtualHost *:80> ProxyRequests off <Proxy balancer://mycluster> BalancerMember ajp://localhost:8009 keepalive=On retry=1 timeout=1
<VirtualHost *:80>
ProxyRequests off
<Proxy balancer://mycluster>
BalancerMember ajp://localhost:8009 keepalive=On retry=1 timeout=15 ping=1
BalancerMember ajp://10.0.3.152:8009 keepalive=On retry=1 timeout=15 ping=1
BalancerMember ajp://10.0.3.153:8009 keepalive=On retry=1 timeout=1 ping=15
Order Deny,Allow
Deny from none
Allow from all
ProxySet lbmethod=byrequests
</Proxy>
<Location /balancer-manager>
SetHandler balancer-manager
Order deny,allow
Allow from all
</Location>
ProxyPass /balancer-manager !
ProxyPass / balancer://mycluster/
</VirtualHost>
系统工作正常,但过了一段时间,我从Tomcat收到以下错误:
org.apache.jk.common.ChannelSocket processConnection
WARNING: processCallbacks status 2
这是来自Apache的:
[error] ajp_read_header: ajp_ilink_receive failed
[error] (70007)The timeout specified has expired: proxy: read response failed from 127.0.0.1:8009 (localhost)
[error] (70007)The timeout specified has expired: ajp_ilink_receive() can't receive header
我必须重新启动Tomcat才能使它再次工作
知道发生了什么吗???在谷歌搜索了一段时间后,这似乎是一个相当普遍的问题,但我没有找到一个合适的解决方案
谢谢你的帮助 如果此帖子/问题尚未解决 尝试增加mod_代理超时设置
我见过的这类错误通常是由于Web服务调用的延迟造成的。取决于具体情况——一个非常常见的原因是无害的;见: i、 e.apache关闭,因为客户端(浏览器)关闭了TCP连接,并且在tomcat将其应答发送到内部TCP套接字之前,所有的TCP连接都已传播 因此,我会提高日志级别来确认它,然后根据生产需要适当地缩小它
[error] ajp_read_header: ajp_ilink_receive failed
[error] (70007)The timeout specified has expired: proxy: read response failed from 127.0.0.1:8009 (localhost)
[error] (70007)The timeout specified has expired: ajp_ilink_receive() can't receive header