2012-06-13 7 views
18

私はPythonアプリケーション(Djangoベース)でgeventを利用しています。しかし、私は現在、プロダクションでどのように実行するのかと思っています。どのサーバーを使用しますか?開発時には、私はgevent.pywsgiを使用しますが、その準備はできていますか?私もgunicornについて聞いたことがありますが、私はかなりのものを見ましたbad benchmarks生産中にgeventを実行する方法

注:私はSSLが必要です。

+4

このベンチマークについては2点です。 1.)gunicornテストでは、使用しようとしているgeventワーカーではなく、デフォルトの同期ワーカーを使用します。 2.)要約から「このベンチマークを明確にした点がある場合は、ほとんどのPython Webサーバーが優れたパフォーマンスを発揮し、状況が遅いと感じる場合、最初に目にするのは自分のアプリケーションです」 –

+8

類似の質問への回答を見る(http://stackoverflow.com/questions/7855343/run-web-app-with-gevent/7857201#7857201)、gevent自身の作者は、要約すると、「gunicornを使用してください。 " – akent

答えて

26

Gunicornが本当に最適です。高速ですが、それは純粋なPython(Herokuのようなホスティングサービスに簡単にデプロイできるように)で書かれており、大量のPython Webアプリケーションでよく使用されています。

デフォルトでは、Gunicornは同期ワーカークラスを使用して要求を処理しますが、実行コマンドに-k geventを単に追加することでgeventを使用するように簡単に設定できます。

NGINX、Varnishなどのプロキシの後ろにgunicornを実行すると、応答バッファリングのためにgunicornがはるかに多くの要求を処理できるようになります。

+4

私はgeventで使用する場合、バッファリングを無効にする必要があることを知りました。それはNginxの利点を取り消しますか? – Flavien

+0

バックエンドサーバーでHTTPを使用するポイントは何ですか? FastCGI、SCGI、uwsgiとは異なり、HTTPはフロントエンドからバックエンドへの通信用に設計されたものではなく、その目的での使用には限界と問題があります。 –

+0

私はあなたがルーティングメッシュがそれを処理するので、Herokuを使用するときnginxのようなリバースプロキシで実行することを心配する必要はないと信じています。 – dhackner

関連する問題