2012-05-13 2 views
0

정적 인 내용은 Django 응용 프로그램에서 메모리 부족을 일으키기 때문에 Django 프로젝트와 동일한 컴퓨터에 정적 파일을 서버하면 안된다는 문서가 있습니다. 이 문제는 또한 하나의 서버에 여러 장고 프로젝트가있는 것으로부터 발생합니까? 모든 웹 사이트 프로젝트를 하나의 매우 큰 Django 프로젝트로 결합해야합니까?동일한 머신에서 여러 장고와 PHP 프로젝트를 제공합니까?

저는 현재 WSGI 모듈을 사용하여 아파치의 php 스크립트와 함께 장고를 제공하고 있습니다. 이로 인해 효율성이 저하됩니까?

수백 개의 파일을 처리 할 때 문제가 발생하고 20-30 개의 다른 PHP/Django 프로젝트가 정상적으로 작동하기 때문에 경고는 정적 컨텐츠 용입니다.

답변

2

나는이 설정이 완전히 괜찮다고 말할 것입니다. 물론 하드웨어,로드 및 기타 프로젝트에 따라 다릅니다. 하지만 여기에서는 사용/성능을 시험하고 모니터링 할 수 있습니다.
ressources가 더 효율적이므로 정적 파일에 대해 다른 서버를 사용하는 것이 좋습니다. 그러나 한 서버가 충분히 우수한 성능을 발휘하는 한 두 번째 서버를 사용해야 할 이유는 없습니다.

사용/구성 용이성보다 성능에 덜 영향을 미치는 또 다른 질문은 실제로 동일한 서버에서 모든 것을 실행하려는 경우 결정입니다.

소규모 사이트의 무리와 함께 한 설치의 경우 (물론 일부 PHP 레거시) 우리는 4 개 개의 가상 서버와 하나의 기계를 사용

  • webhead 실행의 nginx (도료)
  • 데이터베이스
  • 간단한 아파치/PHP 서버
  • 장고 서버 사용 gunicorn + supervisord

의 nginx는 EI를 모든 사이트를 처리 응용 프로그램 서버로 프록시하거나 정적 컨텐츠를 제공하는 것 (nas를 통해). 이 설치가 마음에 들었습니다. 설치 및 처리가 매우 쉽습니다. 필요할 경우 원피스를 쉽게 확장 할 수 있습니다. Bu

0

"" "정적 인 내용이 Django 응용 프로그램을 메모리에서" "쫓아 내기 때문에 Django 프로젝트와 동일한 컴퓨터에 정적 파일을 서버하면 안됩니다." "그렇다면 문서가 매우 오도하고 틀림없이 명백한 잘못.

동일한 시스템에서 PHP를 사용한다면, 파이썬 웹 애플리케이션을 실행하기위한 mod_wsgi 데몬 모드와 파이썬 웹 애플리케이션 당 하나의 데몬 프로세스를 사용하고 있는지 확인해야한다.

파이썬 웹 응용 프로그램을 임베디드 모드로 실행하지 마십시오. 즉, mod_php와 동일한 프로세스로 실행 중이며 확장을 포함한 PHP가 다중 스레드 안전이 아니므로 미리 MPM을 실행해야하기 때문입니다. prefork MPM을 실행할 때 Apache에 임베디드 된 Python 웹 응용 프로그램을 실행하는 것은 아파치를 적절하게 설정하는 방법을 잘 모르는 한 나쁜 생각입니다. 하지 설정 아파치 권리를 수행하고 다음에 설명 된대로, 같은 문제를 얻을 :

http://blog.dscpl.com.au/2009/03/load-spikes-and-excessive-memory-usage.html

그것의 짧은 PHP와 Python 용 아파치 구성이 매우 다를 필요가있다. 하지만 파이썬 웹 애플리케이션에 mod_wsgi 데몬 모드를 사용하면 문제를 해결할 수 있습니다.

관련 문제