2010-03-03 5 views
4

django 웹 사이트를 개발 중입니다. mod_wsgi를 사용하고 있습니다. 방문자가 거의 없기 때문에 방문 할 때마다 wsgi가 시작되고 python 프로세스가 열립니다. 완전히로드되기까지 1-2 분이 걸립니다.시작시 mod_wsgi가 너무 느립니까?

초기 시동시 느리게하지 않으려면 어떻게해야합니까? 이것이 일반적인 문제입니까 아니면 구성과 관련하여 문제가 될 수 있습니까?

답변

6

임베디드 모드와 Apache prefork MPM을 사용하는 차선책 구성을 사용하더라도 오래 걸리지 않아야합니다. 하지만 MaxRequestsPerChild를 Apache 프로세스에 대해 1로 설정하면 문제가 악화 될 수 있습니다.

제안 사항은 mod_wsgi 데몬 모드를 사용하고 단일 멀티 스레드 프로세스 (WSGIDaemonProcess의 기본 설정)로 실행해야합니다. 이렇게하면 적어도 장고 인스턴스가 하나만 있고 아파치 서버 프로세스 당 하나는 아닌 것을 보장 할 수 있습니다.

현재하고있는 일에 대한 확인으로 mod_wsgi 비트 설정 방법을 보여주는 현재 아파치 설정의 질문과 게시 스 니펫을 편집하십시오. 'httpd -V'를 실행하여 결정할 수있는 Apache prefork 또는 worker MPM을 사용하는지 여부와 사용중인 플랫폼을 포함할지 여부도 포함하십시오.

현재, 설치를 검증하기 위해 간단한 hello world WSGI 프로그램을 사용해 보셨습니까? 'http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide'을 참조하십시오. 그리고 당신의 변경 사항인지 확인하기 위해 실제 Django 사이트가 아닌 장고 사이트에서 시도해 보셨습니까?

0

이것에 대해 좀 더 자세히 설명해주세요. prefork MPM 기간을 사용하지 않으려는 경우, 각 사전 프로세스에 대해 1x mod_wsgi 프로세스가 발생합니다.

이 문제를 극복하는 가장 좋은 방법은 작업자 MPM을 사용하여 데몬 모드에서 WSGI 프로세스를 실행하는 것입니다.

https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/modwsgi/#using-mod-wsgi-daemon-mode

편집 :

또한 그렇지 않으면 각 HTTPD 프로세스가 모든 연결이 종료 된 후에 자신의 mod_wsgi에 프로세스를 만들 듯 당신이 그룹을 지정해야합니다. WSGIDaemonProcess ABC.com = 아파치 사용자 그룹 = 아파치 디스플레이 이름 = % {GROUP} 오프 프로세스 WSGILazyInitialization에서

WSGIScriptAlias은//usr/local/apache2/htdocs/ABC.com/build/wsgi.py WSGIPassAuthorization = 1 threads = 256 WSGIProcessGroup ABC.com

+0

또한이 블로그 게시물 http://blog.dscpl.com.au/2012/10/why-are-you-using-embedded-mode-of에 대해 이야기합니다. html 및이 동영상은 https://www.youtube.com/watch?v=k6Erh7oHvns –

관련 문제