最近、Python WSGI ベースのフレームワーク (Pyramid と Flask) を使い始めました。私はずっと Apache を使用してきましたが、最近、node.js や Nginx のような非同期のノンブロッキング イベントベースのテクノロジが注目されています。
だから私は、私のアプリケーションが本番環境に入ったら、Nginx の仮想クラウド サーバーで実行され、超高速になると決めました...しかし、思ったよりも...ちょっと待ってください...wsgiアプリケーションは、設計によるブロッキング アプリケーションです。では、wsgi アプリケーションは、実際には Apache よりも Nginx での動作が悪いのではないでしょうか? おそらくApacheは、マルチスレッドを備えた私のアプリケーションよりもはるかに優れています.
とにかく、今、私は本番環境で何を使用するかを理解しようとしているので、そのように準備して最適化することができます. 私はこの分野ではほとんど初心者なので、いくつかのアイデアはありますが、どのルートを取るべきかわかりません.
1.) Have nginx serve my wsgi app, but create some kind of load balancer that sends requests to various nginx instances, as running single process would probably fail miserably as my python app would be blocking it. So I would have 4-8 nginx's running.
2.) Have apache serve everything, wsgi+static
3.) Have apache serve the app via mod_wsgi, and nginx serve static files
4.) Any other solutions?
パフォーマンス、リソース使用率、信頼性、利便性の間で最適なバランスを探しています。正しく構成されていれば、nginx または apache がアプリのボトルネックになるとは思いません。
ありがとう