ApacheとTomcatをmod_proxy_ajpに接続することに関する問題を解決しようとしています。私の場合、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)
何も思いつきません。誰でも私を助けることができますか?
これを試して :
"org.Apache.coyote.ajp.AjpProtocol"
を試してください。/etc/Tomcat7/server.xmlにあるAJPコネクタにconnectionTimeoutとkeepAliveTimeoutを追加します。
<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です。
Lambda Probeから分岐したApache Tomcatの高度なマネージャーおよびモニターであるpsi-probeをインストールすることをお勧めします。 https://code.google.com/p/psi-probe/
問題とその解決方法の非常に良い説明は http://javaworkbench.blogspot.co.at/2013/09/Apache-web-server-Tomcat-ajp.html にあります。 。
つまり、Apache「MaxClients」をTomcat AJP「maxConnections」構成と等しくなるように構成します。 -Tomcat AJPの「keepAliveTimeout」を設定して、一定の非アクティブ期間が経過した後に接続を閉じます。
Apache 2.2およびCentosでTomcat 8を使用していますが、次のような問題が見つかりました。
[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.
Tomcat server.xmlの例を次に示します。
<Connector port="8009" protocol="AJP/1.3" maxConnections="256" keepAliveTimeout="30000" redirectPort="8443" />
このソリューションが気に入ったら、回答に投票してください。乾杯