2012-03-30 15 views
2

Pyramidは開発目的で独自のWaitress Webサーバーを使用しますが、私は竜巻の下でWSGIアプリケーションを提供したいと思います。私はpserveの.iniファイルを使用して設定する必要があると思うが、動作させることができない。竜巻の下でPyramid WSGIアプリケーションを実行する

+1

本当にあなたが求めていたものではないので、コメントでも答えでもありません。 TornadoはWSGIに対応できますが、WSGIでは非同期処理が許可されていないため、実際には推奨されていません。これはTornadoを実行する本当の理由です。 IMHO flupは、WSGI-appsを展開するためにはるかにシンプルな方法であり、WSGI-appとAJP/FCGI/SCGI/CGIの間のゲートウェイとして機能します。フォークバージョンは、[Python GIL](http://wiki.python.org/moin/GlobalInterpreterLock)を参照してください。 – Rawler

答えて

3

また、竜巻の下でWSGIを実行することを推奨していない。 http://www.tornadoweb.org/documentation/wsgi.html

def simple_app(environ, start_response): 
    status = "200 OK" 
    response_headers = [("Content-type", "text/plain")] 
    start_response(status, response_headers) 
    return ["Hello world!\n"] 

container = tornado.wsgi.WSGIContainer(simple_app) 
http_server = tornado.httpserver.HTTPServer(container) 
http_server.listen(8888) 
tornado.ioloop.IOLoop.instance().start() 
+0

それでは、どのサーバーを使用しますか?好ましくは非常に速いもの – stipetic

+0

あなたのニーズによって異なります。スピードがすべての場合は、_probably_Tornadoを使用する必要がありますが、WSGI-appとしてデプロイするのではなく、ネイティブの非同期Tornado-appとしてデプロイする必要があります。 (特にロングポーリングが問題になる場合)既存のWSGIインターフェイスアプリケーションが必須であれば、http://nichol.as/benchmark-of-python-web-serversが役立つかもしれません。あなたのアプリにもよりますが、若干遅くてシンプルでリーンなサーバーと、うまくチューニングされたVarnish/nginxキャッシングフロントエンドを組み合わせるのが良い方法です。 – Rawler

+0

たとえば、多くのアプリケーションでよく見られる共通のインデックスビューが生成されている場合、うまくチューニングされたnginxは、数秒ごとに1つのリクエストがPythonコードに当たったことを確認できます。 – Rawler

6

ピラミッドのアプリケーションを簡単にINIファイルから読み込むことができます。

あなたはまだいくつかの理由のためにそれをやりたいなら、ドキュメントの第二の例は、あなたが探しているもののようです。そこから、wornアプリをTornadoのWSGIContainerに渡すだけです。

from pyramid.paster import get_app 

app = get_app('development.ini') 
container = tornado.wsgi.WSGIContainer(app) 
+0

ランナースクリプトの代わりに 'pserve'を使ってアプリを起動する方法はありますか? – zakdances

+1

pserveサーバーのランナーは、PasteDeployを介して完全にプラグイン可能ですので、自分で書くことができます(setuptoolsのエントリーポイントを把握すると非常に簡単です)。私は竜巻のためにあらかじめ焼いたランナーに精通していません。 –

関連する問題