2011-11-12 10 views
2

私はPythonのWebフレームワーク(またはサーバー)について、たいていはTornadoBottleですが、FAPWS3も読んでいますが、まだグレーの領域があります。スタンドアロンのPython Webサーバーおよび/またはnginx

最初に、これらの3つのWebフレームワークはすべて高速ですが、それらはすべてnginx/Apacheの後ろに置かれるべきPython(FAPWS3を除く)で書かれたWebサーバーを含んでいます。これはパフォーマンスを低下させるものではありませんか?私は、PythonがCよりもはるかに遅いことを知っています。なぜなら、nginxだけでなく、最悪の場合、含まれているPython Webサーバーだけを使用するのはなぜですか?

+0

なぜWebサーバーを別のものに置きますか? –

+0

@ IgnacioVazquez-Abramsそれは質問の一部です。 – seriousdev

+0

あなたは、別のWebサーバーの後ろに置かなければならないと主張しますが、そのような理由や証拠は提供していません。 –

答えて

7

まず、TornadoとFAPWS3はWebサーバーで、BottleはWebフレームワークです。それらは全く異なるカテゴリに属しています。

Webフレームワークは、通常、HTTP( "Web")プロキシの背後にあるWSGIサーバーとして実行されます。ほとんどのフレームワークに含まれているHTTPサーバーは、迅速な開発とデプロイメントと、高効率が重要でないサイトでの展開を容易にするためにのみ用意されています。

HTTPサーバー(Apache/Lighttpd/Nginx/Tornado/FAPWS3など)は、HTTPを理解し、ディスクから静的ファイルを提供することに非常によく似ています。一方、動的コンテンツは、Bottle/Flask/web.py/Pylons /などのWebフレームワークを使用するPythonサーバーによって生成されます。 Webフレームワークによって生成されたドキュメントは、WSGIを介してHTTPサーバーに返送され、HTTP応答を挿入してクライアントに送信されます。

+0

ありがとうございました!動的コンテンツがフレームワークを使ってPythonサーバーによって生成されると言うと、フレームワークがPythonサーバーを実行する代わりに直接WSGIで応答を送信する方が速いのでしょうか?それとも、WSGIの仕組みですか? – seriousdev

+0

@seriousdev:WSGIは、WSGIアプリケーションの実行方法を指定していません。これを制御するのはWSGIコンテナです。 –

関連する問題