저는 Python 응용 프로그램 (Django 기반)에서 gevent를 사용하고 있습니다. 그러나 지금은 프로덕션 환경에서 실행하는 방법에 대해 궁금합니다. 어떤 서버를 사용해야합니까? 개발하는 동안 gevent.pywsgi를 사용하지만 제작 준비가 되었습니까? 나는 또한 gunicorn에 대해 들었지만 꽤 많은 것을 보았다. bad benchmarks.생산에서 gevent를 실행하는 방법
참고 : SSL이 필요합니다.
저는 Python 응용 프로그램 (Django 기반)에서 gevent를 사용하고 있습니다. 그러나 지금은 프로덕션 환경에서 실행하는 방법에 대해 궁금합니다. 어떤 서버를 사용해야합니까? 개발하는 동안 gevent.pywsgi를 사용하지만 제작 준비가 되었습니까? 나는 또한 gunicorn에 대해 들었지만 꽤 많은 것을 보았다. bad benchmarks.생산에서 gevent를 실행하는 방법
참고 : SSL이 필요합니다.
Gunicorn이 가장 좋습니다. 빠르고, 순수한 파이썬으로 작성 되었기 때문에 (Heroku과 같은 호스팅 된 서비스에 쉽게 배포 할 수 있음), 많은 양의 Python 웹 응용 프로그램에 잘 유지 관리되고 사용됩니다.
기본적으로 Gunicorn은 동기 작업자 클래스를 사용하여 요청을 처리하지만 실행 명령에 -k gevent
을 단순히 추가하여 gevent를 사용하도록 쉽게 구성 할 수 있습니다.
단지 빠른 설명 : NGINX, Varnish 등과 같은 프록시에서 항상 gunicorn을 실행해야합니다. 그러면 gunicorn이 응답 버퍼링으로 인해 요청할 수있는 것보다 훨씬 많은 요청을 처리 할 수 있습니다.
gevent와 함께 사용할 경우 버퍼링을 비활성화해야한다는 것을 보았습니다. 그것은 Nginx의 혜택을 취소합니까? – Flavien
백엔드 서버에서 HTTP를 사용하는 요점은 무엇입니까? FastCGI, SCGI 및 uwsgi와 달리 HTTP는 프런트 엔드에서 백엔드로의 통신을 위해 설계되지 않았으며 그 목적을 위해이를 사용하는 것은 한계와 문제점이 있습니다. –
라우팅 메쉬가 처리하기 때문에 Heroku를 사용할 때 nginx와 같은 역방향 프록시로 실행하는 것에 대해 걱정할 필요가 없습니다. – dhackner
이 벤치 마크에 대해 2 점을 얻었습니다. 1.) gunicorn 테스트는 사용하려는 gevent 작업자가 아닌 기본 동기화 작업자를 사용합니다. 2) 요약에서 "이 벤치 마크를 명확하게 한 것이 있다면 대부분의 Python 웹 서버가 뛰어난 성능을 제공한다는 것입니다. 느린 점이 느껴지면 처음 보는 것은 자신의 응용 프로그램입니다." –
유사한 질문에 대한 답변보기 (http://stackoverflow.com/questions/7855343/run-web-app-with-gevent/7857201#7857201), gevent 자신의 저자는 간단히 말해서, "gunicorn을 사용하십시오. " – akent