我使用的是Windows Server 2008中的Apache 2.2的Python 2.7和Django的是FCGI服務器Django的Apache的與FCGI - 高負荷下的500內部服務器錯誤
FCGI服務器開始作爲的服務與SRVANY:
python c:\amebas_site\amoeba\manage.py runfcgi host=127.0.0.1 port=8881 daemonize=True method=threaded outlog=c:\amebas_site\logs\access.log errlog=c:\amebas_site\logs\error.log maxchildren=100 maxspare=90 minspare=50 maxrequests=10 debug=True
我嘗試了不同的maxspare,minspare,maxrequests和maxchildren值,但沒有任何幫助。在高負載下,我總是得到「500服務器錯誤」。
Apache的配置:當有5-6個用戶在線,沒有錯誤
FastCGIExternalServer c:\amebas_site\fcgi.hook -host 127.0.0.1:8881
RewriteEngine On
...
RewriteCond ${REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ /fcgi.hook/$1 [QSA,L]
我的Django的網站工作良好。 但是當我做壓力測試(通過loadimpact.com 50個虛擬用戶),該網站顯示「500內部服務器錯誤」頁面,我在Apache日誌得到一個錯誤信息:
[Thu Dec 06 16:29:48 2012] [error] [client 54.246.71.7] (OS 10054)An existing connection was forcibly closed by the remote host. : FastCGI: comm with server "C:/amebas_site/fcgi.hook" aborted: read failed [Thu Dec 06 16:29:48 2012] [error] [client 54.246.71.7] FastCGI: incomplete headers (0 bytes) received from server "C:/amebas_site/fcgi.hook"
但有注意到Django日誌。我怎樣才能調試這個問題並擺脫它?
靜態文件是由Apache的服務多少請求。當有50個虛擬用戶時,每秒有超過20個請求。 – user1882347
我會嘗試更多的子線程,但我仍然想知道FCGI會發生什麼。如何確定它是否在處理請求的某個地方失敗或者超時?在測試過程中頁面加載時間也會從1秒增加到30秒。 – user1882347
我用maxthreads = 256再次嘗試,但它沒有幫助,即使只有25個連接,仍然有失敗(500個內部服務器錯誤)。 – user1882347