使用する際に誰もが長所/短所を説明してもらえWSGI VS uWSGIをnginxのと。
現在、準備したDjango Webサイトの運用サーバーを構築していますが、WSGIとuWSGIのどちらを使用するかを決定できません。各構成の違いについて詳しく説明してください。どの構成が最適にスケーリングする必要がありますか?
前もって感謝します
回答:
わかりました。この混乱は、いくつかのソースからの詳細の欠如、これらのプロトコルの名前、およびWSGIが実際に何であるかによるものです。
概要:
python manage.py runserver
どれですか?
python manage.py runserver
Djangoに組み込まれている内部サーバーです。Apache、nginx、gunicornなどではありません。Werkzeugフレームワークを使用django-extensions
するを提供しますが、runserver_plus
これはサーバーに限りなく近いものrunserver
です。
通常、PythonはメインのWebサーバーとは別のプロセスで実行するのが最適です。そうすれば、Webサーバーは静的コンテンツを非常に高速に提供する小さなスレッドをたくさん持つことができますが、個別のPythonプロセスは大きくて重いものになり、それぞれが独自のPythonインタープリターを実行します。WSGI
大きなPythonインタープリターでnginxスレッドのすべてを膨らませるので、プレーンは悪いです。使用するflup
かgunicorn
またはuWSGI
背後nginx
単にコンテンツを提供し、あなたが独立して使用すると、動的なコンテンツを提供するために持ち出すどのように多くのヘビー級Pythonのスレッドのお好みの、小さな光nginxのスレッドを実行する方法を多く選択することができますnginxの最大その解放しますので、はるかに優れています。gunicorn
現時点では人々は非常に満足しているようですが、これら3つのオプションのいずれも問題なく機能するはずです。
将来的には、負荷が深刻になり始めたときにPythonを別のサーバーに移動することもできます。
ここhttp://flask.pocoo.org/docs/deploying/uwsgi/は、混乱を解消するための良い答えだと思います。質問はばかげているわけではなく、2つの用語を見て、mod_PHPの世界の外で物事がどのように機能するかについての事前情報を持っていない人に起こります(たとえば、phpや人々に対して何もありません)
このサイトは、何が必要で何が違いであるか、そしてnginxの優れた展開例を実用的な用語で説明するのに適しています。
便宜上、Flaskwikiからの説明をここに引用します。
uWSGIは、nginx、lighttpd、チェロキーなどのサーバーでの展開オプションです。その他のオプションについては、FastCGIおよびスタンドアロンWSGIコンテナを参照してください。WSGIアプリケーションをuWSGIプロトコルで使用するには、最初にuWSGIサーバーが必要です。uWSGIは、プロトコルとアプリケーションサーバーの両方です。アプリケーションサーバーは、uWSGI、FastCGI、およびHTTPプロトコルを提供できます。
最も人気のあるuWSGIサーバーはuwsgiであり、このガイドで使用します。従うためにそれがインストールされていることを確認してください。