使用FCGI的Apache上的Django - 高负载下500内部服务器错误

时间:2012-12-06 13:04:46

标签: django windows apache fastcgi

我正在使用Windows Server 2008,Apache 2.2 Python 2.7和Django作为FCGI服务器

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配置:

FastCGIExternalServer c:\amebas_site\fcgi.hook -host 127.0.0.1:8881

 RewriteEngine On
 ...
 RewriteCond ${REQUEST_FILENAME} !-f
 RewriteRule ^/(.*)$ /fcgi.hook/$1 [QSA,L]

RewriteEngine On ... RewriteCond ${REQUEST_FILENAME} !-f RewriteRule ^/(.*)$ /fcgi.hook/$1 [QSA,L]

当有5-6位用户在线时,我的django网站运行良好,没有错误。 但是当我进行压力测试(通过loadimpact.com的50个虚拟用户)时,该站点显示“500内部服务器错误”页面,我在apache日志中收到错误消息:

但是在Django日志中有注意到。我怎样才能调试这个问题并摆脱它?

1 个答案:

答案 0 :(得分:0)

看,你有maxchildren = 100  1.如果您的请求超过1-2秒(可能在调试中),那么您的服务器就无法处理所有50个连接  2.如果您有静态文件并且由django提供服务 - 那么它还使用其他连接

解决方案:您可以分析日志并计算5秒内您有多少请求,例如