WSGIとuwsgiコンセプトとuWSGI ---

I.概要

  • WSGIは、通信プロトコルです。
  • uwsgiは、伝送プロトコルです。
  • uWSGIはuwsgiとWSGI 2つのプロトコルのWebサーバーを実現しています。

二.WSGI

:そこPythonで多くのWebフレームワークはDjangoFlaskTornadoweb.pyと私たちはPython言語の開発は、PythonのWebサービスのサポートで展開する必要がWebアプリケーションを開発するためのこれらのWebベースのWebアプリケーションフレームワークに基づくことができますので、: 、uWSGIGunicornWaitressflup

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本契約は、serverapplication二つの部分:

  • WSGI serverクライアントからの要求を受信するための責任がある、されrequestに転送リターンクライアントに戻って。applicationapplicationresponse
  • WSGI application受信されserver、転送request、処理要求、および処理結果に戻りますserverapplication式の中間体のスタック(複数の含まれるmiddlewaresサーバー、アプリケーション・ミドルウェア・プレイ、アプリケーション:規制とWSGI WSGIアプリケーションサーバとの間で作用することが可能である、ミドルウェア、サーバやファイルアプリケーションを実現する必要があります)、プログラム、ミドルウェア、サーバが再生します。

WSGI実際には、プロトコルが定義されているserverapplicationの複数の実装ができデカップリング、標準WSGI serverのサーバを、あなたが複数の実装もを持つことができるWSGI applicationフレームワークを、あなたはどんな選択することができますserverし、applicationその達成するために組み合わせwebたアプリケーションを。

例えば、uWSGI及びGunicorn実現されるWSGI serverサーバプロトコルをDjangoFlaskそれが達成することである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

公開された19元の記事 ウォンの賞賛2 ビュー6555

おすすめ

転載: blog.csdn.net/feyehong/article/details/102933412