2013-12-23 68 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/