2011-11-12 2 views
2

파이썬 웹 프레임 워크 (또는 서버)에 대한 내용은 대부분 TornadoBottle뿐 아니라 FAPWS3이며 일부 회색 영역이 있습니다.독립 실행 형 파이썬 웹 서버 및/또는 nginx

먼저 세 가지 웹 프레임 워크는 모두 빠르다고하지만 모두 파이썬 (FAPWS3 제외)으로 작성된 웹 서버를 포함하고 있습니다.이 웹 서버는 nginx/Apache 뒤에 있어야합니다. 성능이 저하되지 않습니까? 우리는 파이썬이 C보다 훨씬 느리다는 것을 알고 있습니다. 왜 nginx를 사용하지 않았는가, 아니면 최악의 경우 파이썬 웹 서버 만 포함 시켰습니까?

+0

왜 웹 서버를 다른 서버에 배치할까요? –

+0

@ IgnacioVazquez-Abrams 질문의 일부입니다. – seriousdev

+0

당신은 다른 웹 서버 뒤에 "있어야"한다고 주장하지만, 그러한 웹 서버에 대한 추론이나 증거는 제공하지 않았습니다. –

답변

7

우선 Tornado와 FAPWS3은 웹 서버이고 Bottle은 웹 프레임 워크입니다. 그것들은 전혀 다른 범주에 속합니다.

웹 프레임 워크는 일반적으로 HTTP ("웹") 프록시 뒤에있는 WSGI 서버로 실행됩니다. 대부분의 프레임 워크에 포함 된 HTTP 서버는 빠른 개발 및 배치와 높은 효율성이 중요하지 않은 사이트에 대한 손쉬운 배치를 위해서만 있습니다.

기본적으로 HTTP 서버 (Apache/Lighttpd/Nginx/Tornado/FAPWS3 등)는 HTTP를 이해하고 디스크에서 정적 파일을 제공하는 데 매우 뛰어납니다. 반면에 동적 인 내용은 Bottle/Flask/web.py/Pylons/etc와 같은 웹 프레임 워크를 사용하는 Python 서버에 의해 생성됩니다. 웹 프레임 워크에서 생성 된 문서는 WSGI를 통해 HTTP 서버로 다시 보내지고 HTTP 응답을 받아 클라이언트로 전송됩니다.

+0

감사합니다. 프레임 워크를 사용하는 Python 서버에서 동적 컨텐츠를 생성한다고 말하면 프레임 워크가 Python 서버를 실행하는 대신 WSGI를 통해 직접 응답을 보내는 것이 더 빠르지 않습니까? 아니면 WSGI가 작동하는 방식입니까? – seriousdev

+0

@seriousdev : WSGI는 WSGI 응용 프로그램의 실행 방법을 지정하지 않습니다. WSGI 컨테이너를 제어합니다. –