2017-03-06 2 views
1

verwendet WirErste ERR_INCOMPLETE_CHUNKED_ENCODING auf dem Server, wenn Django APIView

  • Django
  • rest_framework
  • gunicorn
  • Postgres
  • nginx

Alles funktioniert lokal mit. Aber auf dem Server, wenn ich Anfrage getroffen von Chrome dann bekam ERR_INCOMPLETE_CHUNKED_ENCODING ich Fehler, und wenn ich curl tat dann Antwort war

curl: (18) transfer closed with outstanding read data remaining 

Selbst wenn ich gunicorn neu starten dann habe ich sofort die Antwort für die 1. Anfrage bekommen, aber dann hängt es irgendwo und Weitere Anfragen funktionieren nicht. Ich gebe ein leeres Array als Antwort auf den Test zurück, der nicht funktioniert, daher ist die Antwortlänge nicht das Problem.

In Django vererre ich MyView Klasse von APIView (aus rest_framework.views importieren APIView). Als ich APIView in View (aus django.views import View) änderte, funktionierte alles auf dem Server gut. Nicht sicher, was das Problem verursacht? Ist es APIView Bibliothek oder Gunicorn. Ich habe versucht Gunicorn lokal und es funktioniert.

Antwort

1

Ich habe

'django.middleware.http.ConditionalGetMiddleware' 

in MIDDLEWARE_CLASSES in settings.py und es begann zu arbeiten. Diese Klasse fügt den Content-Length-Header in die Antwort ein.

0

Sie sollten die Berechtigungen von/var/lib/nginx/für den Benutzer ändern, bevor Sie gunicorn ausführen. Wenn Sie Benutzer Benutzername ist, beheben Sie diesen Fehler mit:

chown -R username:username /var/lib/nginx 
Verwandte Themen