Tomcat停止响应Apache

mrwjdhj3  于 2023-04-07  发布在  Apache
关注(0)|答案(5)|浏览(165)

我正在尝试解决一个关于使用mod_proxy_ajp连接Apache和Tomcat的问题。在我的例子中,Tomcat停止响应Apache,Apache日志打印如下错误消息:

[Mon May 06 15:22:47 2013] [error] ajp_read_header: ajp_ilink_receive failed
[Mon May 06 15:22:47 2013] [error] (120006)APR does not understand this error code: proxy: read response failed from [::1]:18009 (localhost)

我不知道。有人能帮我吗?

lb3vh1jj

lb3vh1jj1#

将connectionTimeout和keepAliveTimeout添加到/etc/tomcat 7/server. xml中的AJP连接器。

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" 
           connectionTimeout="10000" keepAliveTimeout="10000" />

有关https://tomcat.apache.org/tomcat-7.0-doc/config/ajp.html处的AJP连接器的信息

  • connectionTimeout =此连接器在接受连接后等待请求URI行显示的毫秒数。AJP协议连接器的默认值为-1(即无限)。
  • keepAliveTimeout =此连接器在关闭连接之前等待另一个AJP请求的毫秒数。默认值是使用已为connectionTimeout属性设置的值。

如果没有定义connectionTimeout和keepAliveTimeout值,那么AJP连接将无限保持活动状态。导致许多线程,默认最大线程数为200。
我建议安装psi-probe -一个高级的Apache Tomcat管理器和监视器,从Lambda Probe派生而来。https://code.google.com/p/psi-probe/

iqih9akk

iqih9akk2#

http://javaworkbench.blogspot.co.at/2013/09/apache-web-server-tomcat-ajp.html中可以找到对该问题以及如何解决该问题的非常好的解释。
简而言之:-将Apache 'MaxClients'配置为等于Tomcat AJP 'maxConnections'配置。-将Tomcat AJP 'keepAliveTimeout'配置为在一段时间不活动后关闭连接。

pn9klfpd

pn9klfpd3#

我正在使用tomcat 8与apache 2.2和Centos,发现问题说:

[error] ajp_read_header: ajp_ilink_receive failed
[error] (70007)The timeout specified has expired: proxy: read response failed

我应用的解决方案,它的工作完美:

1. Configure Apache 'MaxClients' to be equal to the Tomcat AJP 'maxConnections' configuration.
2. Configure Tomcat AJP 'keepAliveTimeout' to close connections after a period of inactivity.

下面是一个来自tomcatserver.xml的示例:

<Connector port="8009" protocol="AJP/1.3" maxConnections="256" keepAliveTimeout="30000" redirectPort="8443" />

如果你喜欢这个解决方案,请投票给答案。干杯

e5njpo68

e5njpo684#

试试这个:
1.尝试增加线程数。(它将推迟错误)
1.在tomcat配置中,尝试使用"org.apache.coyote.ajp.AjpProtocol"代替APR。

bxgwgixi

bxgwgixi5#

我遇到了同样的问题,我想知道为什么我找不到任何关于我的解决方案:我只需要在Connector配置中将secretRequired设置为false

<Connector protocol="AJP/1.3"
           address="127.0.0.1"
           port="8009"
           redirectPort="8443"
           secretRequired="false"
/>

我的Apache HTTPD配置:

ProxyPass        /tomcat10 ajp://localhost:8009/

请注意,这可能是不安全的。也许最好保留secretRequired="true"并在Apache HTTPD端修复它。我只是想至少给予其他有同样问题的人一个提示。

相关问题