我们在Tomcat 7.0.33之前有Apache 2.2.24。 我们使用APR / nativeconfiguration的AJP连接器。 我最近注意到Apache访问日志中有500个错误,对一个特定资源的一小部分(0.3%)请求。 对于这500个响应中的每一个,Apache错误日志中都有一对相应的错误行
[Wed Mar 06 04:07:42 2013] [error] ajp_read_header: ajp_ilink_receive failed [Wed Mar 06 04:07:42 2013] [error] (70007)The timeout specified has expired: proxy: read response failed from (null) (*)
logging错误的时间在logging请求的时间之后5:06和5:07分钟之间。 匹配设置的Timeout 300指令。 没有任何东西logging在Tomcat的访问日志,所以我假设请求永远不会到达那里。
据推测,资源存在一些性能问题(它进行了数据库更新,负载相当高),但我更关心的是了解Apache和Tomcat之间的通信。
Apache使用带有[proxy,last]标志的重写规则进行configuration。 Tomcat连接器看起来像
<Connector port="8014" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
就像我之前所说的,我将分别解决Tomcat资源上的瓶颈问题。