我们正在使用
一切都在本地工作。但是在服务器上,当我点击Chrome的请求时,我收到了ERR_INCOMPLETE_CHUNKED_ENCODING错误,当我卷曲时,响应就是
curl: (18) transfer closed with outstanding read data remaining
即使我重新启动gunicorn,我立即得到第一个请求的响应,但然后它挂起了某个地方,并且进一步的请求不起作用。 我正在返回一个空白数组,以响应测试,这不起作用,因此响应长度不是问题。
在Django中,我从APIView继承了MyView类(来自rest_framework.views import APIView)。当我将APIView更改为View(来自django.views import View)时,一切都在服务器上正常运行。不确定是什么原因造成的?是APIView库还是gunicorn。 我在当地尝试了gunicorn,它很有效。
答案 0 :(得分:2)
我添加了
'django.middleware.http.ConditionalGetMiddleware'
在settings.py的MIDDLEWARE_CLASSES中,它开始工作。 此类在响应中添加Content-Length标头。
答案 1 :(得分:0)
您应该为用户更改/ var / lib / nginx /的权限,而不是执行gunicorn。如果您的用户是用户名,则使用以下命令修复此错误:
chown -R username:username /var/lib/nginx
答案 2 :(得分:0)
在我的情况下,问题正在发生,因为托管我的服务器的盒子达到了100%的磁盘使用率,因此在编写访问日志时nginx失败了。只是有人遇到同样的问题时添加它。因此,这可能意味着存在其他问题,您应该从更全面的角度进行调试。