2009-11-17 7 views
30

웹에서 저는 WSGI가 파이썬 웹 개발/프레임 워크 용 CGI임을 수집했습니다. FCGI는 다양한 언어에 대한 좀 더 일반화 된 게이트웨이 인 것으로 보입니다. Python과 C/++ 언어에 대한 두 언어의 성능 차이를 모르십시오.WSGI와 FCGI간에 속도 차이가 있습니까?

답변

67

올바른 WSGI는 Python 프로그래밍 API 정의이고 FASTCGI는 언어에 구애받지 않는 소켓 와이어 프로토콜 정의입니다. 효과적으로 WSGI가 상위 계층 인 다른 계층에 있습니다. 즉, FASTCGI를 사용하여 웹 서버와 통신하기 위해 우연히 만난 WSGI를 구현할 수 있지만 그 반대의 방식은 아닙니다.

일반적으로 FASTCGI는 소켓 와이어 프로토콜이므로 항상이를 사용하려면 몇 가지 유형의 프로그래밍 방식 인터페이스가 필요합니다. 파이썬의 경우 이러한 옵션은 WSGI입니다. FASTCGI가 끝을내는 수단 일 뿐이므로, WSGI는 이와 비슷한 소켓 와이어 프로토콜이 아니라 FASTCGI 자체의 사용자이기 때문에 실제 성능을 WSGI와 비교할 수 없습니다.

FASTCGI를 기반으로 다른 언어 인터페이스의 성능을 비교해 볼 수는 있지만 일반적으로 하위 네트워크 계층과 서버 요청 처리가 병목 현상이 아니므로 일반적으로 그 자체로는 의미가 없습니다. 대신 응용 프로그램 코드와 데이터베이스가됩니다.

+1

시간 차이가 요청에 응답하는 fcgi 앱과 요청에 응답하는 wsgi 앱 사이에 무엇이 있는지 물어 보는 것은 의미가 있다고 생각합니다. fcgi와 wsgi는 프로그래밍 언어를 웹 요청에 연결하는 두 가지 다른 방법이기 때문에 매우 유사합니다. – Ninjaxor

20

두 가지가 있습니다. WSGI는 웹 응용 프로그램을 작성하기위한 Python 특정 인터페이스입니다. WSGI 인터페이스를 제공하는 웹 서버 프로토콜에 대한 래퍼가 있습니다. FastGCI (FCGI)는 그러한 웹 서버 프로토콜 중 하나입니다. 따라서 WSGI는 추상화 계층이고 CGI/FastCGI/mod_python은 실제 웹 서버가 응용 프로그램과 통신하는 방법입니다. 일부 코드는 기본 인터페이스를 WSGI로 변환해야합니다 (wsgiref에 CGI 모듈이 있고 FastCGI의 경우 flup 등). Apache 용 mod_wsgi도 있습니다. 아파치 모듈에서 직접 변환하므로 파이썬 래퍼가 필요하지 않습니다.

관련 문제