1. 程式人生 > >apache winnt_accept: Asynchronous AcceptEx failed 導致時常卡住解決辦法

apache winnt_accept: Asynchronous AcceptEx failed 導致時常卡住解決辦法

在VPS搭建了Apache2.4.12+PHP的環境,啟動服務,網站訪問一切正常,然而網站總是過一段時間之後就出現訪問異常掛起,瀏覽器長時間等待伺服器無法開啟網頁的現象,尤其是在使用IE開啟幾次網頁後就會出現這種問題,開啟Windows程式日誌檢視也沒發現什麼異常資訊,檢視Apache的日誌我發現了幾條異常的記錄,其資訊如下:apachehangerro

[Sat May 23 14:17:42.067403 2015] [mpm_winnt:warn] [pid 1936:tid 8692] (OS 64)指定的網路名不再可用。  : AH00341: winnt_accept: Asynchronous AcceptEx failed.

按照錯誤資訊的提示我Google了一下原因,這是因為Apache2.4.X在SSL上的一個Bug,這會導致伺服器掛起,瀏覽器就只能長時間等待導致訪問失敗。

解決方案:

在你的Apache的httpd.conf配置檔案中新增下面的配置,然後重啟Apache
AcceptFilter http none
AcceptFilter https none
EnableSendfile off
EnableMMAP off

上面的四個配置的後面兩個預設情況下是開啟的,我只配置了前面的兩個AcceptFilter就解決了問題,你可以根據Apache的官方文件開啟或者關閉,在這裡http://httpd.apache.org/docs/current/mod/core.html 你通過Ctrl+F查詢到EnableSendfile和EnableMMAP的說明。