スタンドアロンのPython Webサーバーおよび/またはnginx

ですから、私はPythonのWebフレームワーク(またはサーバー)について、ほとんどの場合、 Tornadoボトルだけでなく、 FAPWS3 まだいくつかの灰色の領域があります。

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

2
アプリケーションサーバーは通常、レスポンスの生成が遅い(静的なものであっても)。一般的な設定は、多数のアプリケーションサーバーの前に高速のHTTPサーバーを置くことです。また、アプリケーションサーバーには、Apacheやnginxのようなhttpサーバーの多くの追加機能がありません。
追加された 著者 m33lky,
なぜあなたは別のWebサーバーを後ろに置くでしょうか?
追加された 著者 Ignacio Vazquez-Abrams,
彼らは別のWebサーバーの背後に置かれるべきだと主張しますが、そのような理由や証拠は何も提示していません。
追加された 著者 Ignacio Vazquez-Abrams,
@ IgnacioVazquez-Abramsそれは質問の一部です。
追加された 著者 seriousdev,

1 答え

まず、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応答を挿入してクライアントに送信されます。

7
追加された
@seriousdev:WSGIは、WSGIアプリケーションの実行方法を指定しません。これを制御するのはWSGIコンテナです。
追加された 著者 Ignacio Vazquez-Abrams,
ありがとうございました!動的コンテンツがフレームワークを使ってPythonサーバーによって生成されると言うと、フレームワークがPythonサーバーを実行する代わりに直接WSGIで応答を送信する方が速いのでしょうか?それとも、WSGIの仕組みですか?
追加された 著者 seriousdev,