Nginx + django + uwsgi 에서 ERR_CONTENT_LENGTH_MISMATCH 오류

0. 환경
- ubuntu 16.04
- nginx 1.10(버전이 낮아서 그런 걸 수도 있다)
- django 1.11 + uwsgi
- chrome 75

1. 오류 상황
 2MB 정도의 json string을 request parameter로 넘기니 ERR_CONTENT_LENGTH_MISMATCH(400) 에러 발생

2. 해결방법
1) nginx
nginx 설정 파일을 아래처럼 수정.
    location / {
        uwsgi_pass [경로]
        include uwsgi_params;
        uwsgi_buffering off;
    }

일반 proxy(proxy_pass)를 사용한다면 proxy_buffering off;
모든 포트의 location /마다 추가해야 한다.

2) django
settings.py에 아래 줄을 추가 혹은 수정.
(django 홈페이지에 따르면 기본값은 2.5MB)

DATA_UPLOAD_MAX_MEMORY_SIZE = [원하는 값(Bytes)]

수정 후 nginx와 uwsgi를 재시작한다.


이 블로그의 인기 게시물

Postgresql에서 5432 port가 열려있냐는 문제(Ubuntu 기준)

vue에서 v-html에 포함된 class의 css가 적용되지 않는 경우

Linux screen 명령어 정리