Django: Truncated or oversized response headers received from daemon process 에러 해결법

Django: Truncated or oversized response headers received from daemon process 에러 해결법

문제 발생 환경

  • OS: Ubuntu 16.04 LTS
  • Python 3.5.2
  • Django 2.0.2
  • Apache HTTPd 2.4
  • numpy / Pandas / pymssql 등 사용중

문제의 발생

장고 배포를 마친 뒤 배포 서버에 접속시 화면이 뜨지 않고 500에러가 났던 상황.

1
Timeout when reading response headers from daemon process 'djangoproject': /home/ubuntu/djangoproject/djangoproject/wsgi.py

에러 로그로 살펴보면 위와 같이 “Timeout when reading response headers from daemon process”이라는 문제가 발생했다.

문제 원인

Numpy나 Pandas와 같은 C 의존 라이브러리들은 파이썬 인터프리터 중 메인 인터프리터에서 사용해야 한다. 만약 mod_wsgi등을 통해 생성된 서브 인터프리터를 사용할 경우 GIL로 인한 Deadlock이 발생하거나 정확하지 않은 결과, 혹은 파이썬 인터프리터의 예기치 못한 종료를 유발할 수 있다.

해결법

따라서 WSGI Application에서 사용할 파이썬 인터프리터에다 시스템의 메인 인터프리퍼를 지정해주면 된다.

/etc/apache2/apache2.conf 경로의 파일 제일 아래에 아래 코드를 추가해준다.

1
WSGIApplicationGroup %{GLOBAL}

코드를 추가해 준 뒤 Apache2를 재시작(service apache2 restart)한다.

Refs

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×