2016-11-03 53 views
8

在我的生产服务器上托管的Webfaction上,我的Django应用程序工作正常,直到我尝试在对settings.py文件进行更改后重新启动它。我跑了Django Webfaction'从守护进程读取响应头时超时'

apache2/bin/restart 

像往常一样。然后我尝试在浏览器上访问我的应用程序,并得到504网关超时。我看着mod_wsgi日志,看到这个:

[Thu Nov 03 23:46:53.605625 2016] [wsgi:error] [pid 8027:tid 139641332168448] 
[client 127.0.0.1:34570] Timeout when reading response headers from daemon 
process 'myapp' : /home/<me>/webapps/<myapp>/<ProjectName>/<myapp>/wsgi.py 

这是什么意思,我该如何解决它?我在settings.py文件中改变的唯一东西是移动一些变量名称。我仍然可以成功地与应用程序进行交互

python2.7 manage.py shell 

但我无法在网络上使用它,也无法使用API​​。

编辑:这是我的wsgi.py文件:

import os 

from django.core.wsgi import get_wsgi_application 

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "<myapp>.settings") 

application = get_wsgi_application() 
+1

你可以发布关于Apache/mod_wsgi的一些版本信息 - 那些看起来像请求超时或插座超时。你可以在本地运行该设置文件吗? – theWanderer4865

+0

我对mod_wsgi很不熟悉,你如何获取版本信息?这只是一个目录apache2 /,带有一些启动脚本 – Nick

+0

我添加了我的wsgi.py文件,如果有帮助 – Nick

回答

13

的Python C扩展模块,例如numpy的,被称为下的mod_wsgi使用时导致超时。这个问题有一个清晰的解释(直接来自mod_wsgi的作者),可以在https://serverfault.com/a/514251/109598

如果听起来这可能是问题的原因,那么解决方案可能很简单 - 将以下内容添加到您的httpd.conf :

WSGIApplicationGroup %{GLOBAL} 

确保在进行更改后重新启动Apache实例。

+0

哇,工作!谢谢,我无法在任何地方找到。是的,我最近刚刚添加了Numpy到我的项目中,所以这可能是原因。 – Nick

+1

非常欢迎!很高兴我可以帮助:) –

+0

也为我工作。 Python 3.5.1,Ubuntu 14.04.3 LTS,带有mod_wsgi的Apache 2.4.7。我导入熊猫和numpy。 – Deleet

-1

增加的Apache httpd的超时工作对我来说

+0

然后,这是一个完全不同的问题,你有。更改Timeout指令值不适用于此问题似乎涉及的特定问题,这是C扩展模块的问题。 –