Django Webfaction 'Timeout when reading response headers from daemon process'

喜你入骨 提交于 2019-11-29 11:48:39

问题


My Django app on my production server hosted on Webfaction was working fine until I just tried to restart it after pushing a change to the settings.py file. I ran

apache2/bin/restart

as usual. Then I tried to access my app on my browser, and I got a 504 Gateway timeout. I looked into the mod_wsgi logs and saw this:

[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

What does this mean and how do I fix it? The only thing I changed in the settings.py file was moving some variable names around. I can still successfully interact with the app with

python2.7 manage.py shell

But I can't get to it on the web, nor use the API.

EDIT: Here's my wsgi.py file:

import os

from django.core.wsgi import get_wsgi_application

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

application = get_wsgi_application()

回答1:


Python C extension modules, like numpy, are known to cause timeouts when used under mod_wsgi. There's a clear explanation of the problem (direct from the author of mod_wsgi) available at https://serverfault.com/a/514251/109598

If that sounds like it might be the cause of your problem, then the solution is probably simple - add the following to your httpd.conf:

WSGIApplicationGroup %{GLOBAL}

Be sure to restart your Apache instance after making that change.




回答2:


Try increasing Timeout directive in httpd.conf, which defaults to 60 seconds in Apache 2.4. For example:

TimeOut 600



回答3:


Here is how I was able to find the root cause of my issue.

python manage.py showmigrations

My app could not reach the database server, so it would eventually time out. Running manage.py I could see see the error message on the console.




回答4:


In my case (Python 3.6), the mimetypes module caused this problem. I did not further investigate this, but removing a call to mimetypes.guess_type solved the problem. The call was made in the related Django view function.



来源:https://stackoverflow.com/questions/40413171/django-webfaction-timeout-when-reading-response-headers-from-daemon-process

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!