2009-12-22 3 views
5

그래서 파이썬에서 더 많은 웹 개발을 시도하고 lighttpd w/fastcgi가 호스팅하는 cherrypy를 선택했습니다. 하지만 제 질문은 아주 기본적인 것입니다 : 응용 프로그램 코드 나 기본 라이브러리의 코드를 변경할 때마다 lighttpd (또는 아파치)를 다시 시작해야하는 이유는 무엇입니까?fastcgi, cherrypy 및 python

나는이 질문이 fastcgi 모델에 대한 기본적인 잘못 (즉, 가난한) 이해에서 비롯된 것으로 알고 있기 때문에 여기 학교 교육을받을 수는 있지만 PHP 파일을 변경하는 데 익숙합니다. 웹 서버를 바운스해야합니다.

설명/유용한 조롱 거리.

+1

"바운스"? 다시 시작한다는 의미입니까? 일반적으로 컴퓨터에서 "바운스 (bounce)"는 오류 또는 유사한 개념으로 거부되는 것을 검색하려고 시도합니다. –

+0

예, 바운스, 프로세스를 다시 시작합니다. 일반적으로 내 경험에 사람들은 항상 아파치, 톰캣 등 수신 거부에 대해 이야기합니다. – Wells

+0

관련 : http://stackoverflow.com/questions/1711483/python-web-hosting-why-are-server-restarts-necessary – miku

답변

8

이것은 성능 때문입니다. 개발을 위해서는 자동로드가 도움이됩니다. 그러나 생산을 위해 에 자동로드를 원하지 않습니다. 이것은 실제로 PHP라고 할 때 상당한 크기의 병목입니다. PHP 웹 페이지에 액세스 할 때마다 서버는 처음부터 각 페이지를 구문 분석하고로드해야합니다. 파이썬을 사용하면 첫 번째 액세스 후에 스크립트가 이미로드되어 실행 중입니다.

지적했듯이 CherryPy에는 자동로드 설정이 있습니다. CherryPy 내장 서버를 개발 용으로 사용하고 생산 용 lighttpd를 사용하는 것이 좋습니다. 그러면 시간을 절약 할 수 있습니다. tutorial에는이를 수행하는 방법이 나와 있습니다.

+0

에서 감사합니다 - 감사합니다. 인터넷 검색을 할 때 floot이 작동하지 않는 것처럼 보입니다. cherrypy가 자동으로 다시로드 될 때 작동하지 않습니다. 거기에 아이디어가 있습니까? 플럽하지 않은 WSGI 모듈을 사용할 수있을 것 같아요. – Wells

+2

CherryPy는 실제로 프레임 워크와 서버의 두 가지 구성 요소라는 것을 명심하십시오. lighttpd를 사용한다면 프레임 워크를 사용하는 것입니다. 개발 중에 서버를 사용한다면 자동으로 자동로드되므로 걱정할 필요가 없습니다. 일단 생산으로 이동하면 * lighttpd로 전환합니다. –

0

시스템 소프트웨어 기록기의 시점에서 : 이것은 모두 서버 프로세스에 대한 메타 데이터가 데몬 (lighttpd 또는 fcgi)에서 어떻게 구성되어 있는지에 따라 다릅니다. 일부 프로그램은 한 번만 초기화하도록 설계되었습니다. MOSTLY 이렇게하면 훨씬 간단하고 성능이 뛰어난 내부 프로그래밍 모델을 사용할 수 있습니다.

서버 프로세스 리로드 구성 데이터를 쉬운 방법으로 프로그래밍하는 것이 종종 어렵습니다. 잠금 및 외부 이벤트 오브젝트 (UNIX의 신호)를 도입해야 할 수도 있습니다. 데이터 구조를 디자인별로 동기화 할 수있는 경우 (즉, 한 번만 초기화 ...) 데이터 모델을 여러 번 수정할 수있게하여 복잡한 작업을 수행하는 이유는 무엇입니까?