系统configuration:Apache2,Django 1.10,Python 3,Ubuntu 16.04 LTS
Django debug=True 。
/var/log/apache2/error.log
[52:53.057967] [wsgi:error] [pid 4303] [client 1.1.1.22:24409] Timeout when reading response headers from daemon process 'example.org': /home/user/dir/project/main_app/wsgi.py [52:58.466726] [wsgi:error] [pid 4305] [client 1.1.1.10:9787] Truncated or oversized response headers received from daemon process 'example.org': /home/user/dir/project/main_app/wsgi.py [52:58.466729] [wsgi:error] [pid 4304] [client 1.1.1.4:18417] Truncated or oversized response headers received from daemon process 'example.org': /home/user/dir/project/main_app/wsgi.py [52:58.466726] [wsgi:error] [pid 4307] [client 1.1.1.22:35116] Truncated or oversized response headers received from daemon process 'example.org': /home/user/dir/project/main_app/wsgi.py [52:58.466756] [wsgi:error] [pid 4306] [client 1.1.1.22:19242] Truncated or oversized response headers received from daemon process 'example.org': /home/user/dir/project/main_app/wsgi.py [52:58.467164] [wsgi:error] [pid 4336] [client 1.1.1.4:34187] Truncated or oversized response headers received from daemon process 'example.org': /home/user/dir/project/main_app/wsgi.py [52:58.467212] [wsgi:error] [pid 4342] [client 1.1.1.22:28212] Truncated or oversized response headers received from daemon process 'example.org': /home/user/dir/project/main_app/wsgi.py, referer: http://example.org/ [52:58.467282] [wsgi:error] [pid 4331] [client 1.1.1.22:31045] Truncated or oversized response headers received from daemon process 'example.org': /home/user/dir/project/main_app/wsgi.py [52:58.467426] [wsgi:error] [pid 4341] [client 1.1.1.70:22784] Truncated or oversized response headers received from daemon process 'example.org': /home/user/dir/project/main_app/wsgi.py, referer: http://example.org/
我不知道错误的原因。 但是我已经把它缩小到了Django的wsgi进程。 由于服务器正在托pipe静态文件。
虽然Cloudflare有时显示502:错误的网关错误,服务器本身显示500:内部服务器错误。
我已经尝试重新启动服务器并检查Django的(debugging)日志文件。 Django日志文件中没有错误信息(根本就没有)。
我应该如何debugging这个问题? 由于Django没有logging任何东西,我认为这个问题可能是由wsgi引起的。
注意:服务器在早期工作正常。 我做了一些改变*(现在恢复原状); Djangoshell工作正常。
变化*
在其他类似的问题中,这个问题是在上传一个大文件时造成的。
问题的原因是numpy 。
Python C扩展模块(如numpy)在mod_wsgi下使用时会导致超时。
来源:由Sean F在超时从守护进程读取响应头时,通过回答
一个类似的问题,我没有find最初的search答复和解释的作者mod_wsgi说 –
某些使用C扩展模块(包括scipy和numpy)的Python第三方包只能在Python主解释器中使用,并且在默认情况下不能在子解释器中用作mod_wsgi。 结果可能是线程死锁,不正确的行为或进程崩溃。
资料来源: Graham Dumpleton在安装scipy之后,在无响应的apache + mod_wsgi上回答
将下面的行添加到你的httpd.conf 。 在我的情况下,该文件是/etc/apache2/apache2.conf 。
WSGIApplicationGroup %{GLOBAL}