I.概要
- WSGIは、通信プロトコルです。
- uwsgiは、伝送プロトコルです。
- uWSGIはuwsgiとWSGI 2つのプロトコルのWebサーバーを実現しています。
二.WSGI
:そこPythonで多くのWebフレームワークは
Django
、Flask
、Tornado
、web.py
と私たちはPython言語の開発は、PythonのWebサービスのサポートで展開する必要がWebアプリケーションを開発するためのこれらのWebベースのWebアプリケーションフレームワークに基づくことができますので、: 、uWSGI
、、Gunicorn
Waitress
flup
WebサーバーとWebアプリケーション開発フレームワークは、基礎を組み合わせる必要があるときにすると、彼らだけがこのようなWebアプリケーションを開発するためのDjangoのベースのフレームワークとしてのみ展開することができ、互換性はありません見つけるために:私たちは、このような問題が発生する可能性がuWSGI
上することはできませんが、展開Gunicorn
に
それでは、どのようなWebアプリケーションを開発するための、異なるWebベースのフレームワークを確保するために、各Webサーバー上で実行することができますか?
またはどのように各Webサーバーがまだウェブの開発のためのさまざまなWebベースのアプリケーションフレームワークと互換性がある作るには?
この時間の必要性のWSGIプロトコルデビュー
1はじめに2.1プロトコル
-
WSGIのフルネームウェブサーバーゲートウェイインターフェイス、またはPythonのゲートウェイインターフェースのWebサーバーは、フレームにWebサーバーとWebアプリケーションや、シンプルで汎用インタフェースの間で定義されたPython言語としてあります。WSGIが開発されて以来、他の多くの言語では、同様のインタフェースがありました:javaのがサーブレットAPIは、Rubyがラックを持っています。
-
WSGIは、携帯一般的なWebアプリケーション開発を強化するためのWebサーバとWebアプリケーションまたはアプリケーション・フレームワーク・インタフェース間の低レベルの通りです。WSGI CGIは、既存の規格や設計に基づいています
WSGIプロトコルは、開発者が、適切なペアリングを選択し、WebサーバとWebフレームをミックスして一致させることができます。たとえば、Webベースのアプリケーション開発ジャンゴ、フラスコまたはGunicorn nginxの/ uWSGIのWebサーバ等ウェイトレスのように実行することができます
WebサーバーにWSGIインタフェースは、すべての近代的なPythonのWebフレームワークは、場所のWSGIインタフェースである持っている必要があります
これを使用すると、サーバのコードを変更することはできませんすることができますし、Webフレームワークの特性が連携して動作します。
そのWebフレームワークとWebサーバは、インタフェースを実装する必要がありますWSGI
2.2はじめに2プロトコル
WSGI
本契約は、server
とapplication
二つの部分:
WSGI server
クライアントからの要求を受信するための責任がある、されrequest
に転送リターンクライアントに戻って。application
application
response
WSGI application
受信されserver
、転送request
、処理要求、および処理結果に戻りますserver
。application
式の中間体のスタック(複数の含まれるmiddlewares
サーバー、アプリケーション・ミドルウェア・プレイ、アプリケーション:規制とWSGI WSGIアプリケーションサーバとの間で作用することが可能である、ミドルウェア、サーバやファイルアプリケーションを実現する必要があります)、プログラム、ミドルウェア、サーバが再生します。
WSGI
実際には、プロトコルが定義されているserver
とapplication
の複数の実装ができデカップリング、標準WSGI server
のサーバを、あなたが複数の実装もを持つことができるWSGI application
フレームワークを、あなたはどんな選択することができますserver
し、application
その達成するために組み合わせweb
たアプリケーションを。
例えば、uWSGI
及びGunicorn
実現されるWSGI server
サーバプロトコルをDjango
、Flask
それが達成することであるWSGI application
プロトコルweb
プロジェクトの実際の状況に応じて使用することができるフレームワークを。
-
私たちは、サーバーと呼ばれるWSGI WSGIを達成するために(例えばuWSGIなど)サーバーWSGIサーバプロトコル仕様は、サーバーはuWSGIです
-
WSGI合意を達成するために(例えばジャンゴなど)アプリケーションWSGIアプリケーション、我々は、ジャンゴ、FalskとしてWSGIアプリケーションと呼ばれます
WSGIサーバ等価ネジ、ナットの等価WSGIアプリケーションのみ一緒に展開するために、標準的なサーバとフレームワークを達成するため
三.uwsgi
uwsgiプロトコル(高速トランスポート・プロトコル)uWSGI服务器
プロトコルが使用され、バイナリデータが格納され、高速解析される前に、プロトコル実装のuwsgi自身の速度は、内部プロトコルuWSGI(文字列であります)
- WSGIは、通信プロトコルです。
- uwsgiプロトコルは、行の代わりに、他のネットワークサーバuWSGIサーバ(nginxの)とのデータ通信にここで使用される通信プロトコルです。
nginxの(外部サーバ)とuWSGI(内部サーバ)間の通信は、uwsgiのプロトコルに基づいています
四.uWSGI
概要:それはWebサーバだけでなく、WebサーバなどのJava Webアプリケーションの展開ですtomcat
uWSGI
完全なソリューションのクラスタを分散ネットワークアプリケーションを開発し、展開することを目指しています。主のためのweb
サービスのその基準。理由は、その拡張性のために、それはより多くのプラットフォームや言語をサポートするために無制限の拡張することができます。uWSGI
それはweb
達成するために、サーバーWSGI
の契約、uwsgi
合意、http
契約を。
uWSGI
主な機能は次のとおりです。
- 超高速パフォーマンス
- 低メモリフットプリント
- マルチ
app
管理 - 詳細ログ(分析するために使用することができ
app
、性能とボトルネック)を - 高度にカスタマイズ(メモリサイズ制限、再起動後にサービスの特定の数、等)
静的なページビュー、および高い並行性を提供nginxの+ uWSGIを使用するには、Pythonの必要性
高い並行性を提供nginxの+ fastcgiのを使用するには、PHPの必要性
ウェブサービスを提供するTomcatの使用nginxの+にJavaの必要性
独立したWSGIサーバーPythonの標準ライブラリと呼ばれるwsgiref
、Djangoの開発環境は、このサーバーモジュールを行うために使用されます
これは、一般的に、サーバーの後の行に使用されているuWSGI
uWSGI実装WSGIすべてのインタフェースは、uWSGIコードは、C、高効率、安定した性能で完全に書き込まれます。
V.リファレンス
次のブログによると仕上げ:
https://www.cnblogs.com/quegai18/p/10509996.html
https://www.cnblogs.com/wcx666/p/10444400.html
https://www.cnblogs.com/biggw/p/11342109.html
https://www.cnblogs.com/big-handsome-guy/p/8664618.html
https://www.cnblogs.com/guokaifeng/p/11007359.html
https://blog.csdn.net/mnszmlcd/article/details/78819237