22

しばらく mod_python を使用していたので、WSGI がいかに優れているかについての記事をますます読みましたが、その理由はよくわかりませんでした。

では、なぜそれに切り替える必要があるのでしょうか。利点は何ですか?それは難しいですか、そして学習曲線はそれだけの価値がありますか?

4

6 に答える 6

15

Python で洗練された Web アプリケーションを開発するには、おそらく DJango、Zope、Turbogears などのより包括的な Web 開発フレームワークを使用するでしょう。アプリケーション開発者として、WSGI についてあまり心配する必要はありません。これらのフレームワークが WSGI をサポートしていることだけは知っておく必要があります。WSGI を使用すると、Web サーバーと Web アプリケーション コードを分離できます。システム管理者は、Web アプリケーションが WSGI に準拠している限り、Web サーバーを変更できます。これらのフレームワークのいずれかで開発している場合は、とにかくこの条件を満たしています。

あなたが Web フレームワーク開発者 (DJango または Zope 自体を開発している) である場合は、WSGI をより深く理解する必要があります。

于 2009-11-28T19:15:41.400 に答える
13

mod_wsgi 対 mod_python:

  • mod_wsgi は少し高速です (内部的には C が多く、Python が少ない)
  • mod_wsgi プロセスを Apache から分離できるため、メモリ使用量が少なくなり、セキュリティと安定性が向上します[1]
  • mod_python を使用すると、Apache の内部の一部にアクセスできます

一般的な WSGI:

  • 多くの再利用可能なミドルウェア (認証/認可、セッション関連、キャッシング、フィルタリング)
  • ネイティブ WSGI サポートまたは flup のいずれかを介して非 Apache Web サーバーへの展開を容易にします。

[1] - 各プロセスで個別の Python インタープリターを維持する preforking Apache との比較

于 2009-11-28T19:16:34.240 に答える
2

ほとんどの Python フレームワークは wsgi を実装しています。Apache には mod_wsgi があり、その他には SCGI/FastCGI/AJP モジュール + Flup があります。そうすれば、1 つの Web サーバーに縛られることなく、個別の Python プロセスの利点をすべて享受できます。

于 2009-11-28T19:12:26.727 に答える
1

開発者の観点から見た違いは、小さなラッパーといくつかのサーバー構成だけであるため、多くを再学習する必要はありません。

デプロイの観点から見ると、違いは、Python コードが Web ブラウザーとは別のプロセスに存在することです。つまり、

a) Python プロセスは、Web サーバーとは別のユーザーとして実行できます。これは、正しく使用すれば、セキュリティにとって価値があります。

b) Web サーバー プロセスに Python ランタイムを含める必要はありません。これは、サーバーが多くの「その他の」リクエスト (静的ファイルなど) といくつかの重い Python リクエストを実行する場合、パフォーマンスを大幅に向上させることができます。

于 2009-11-28T19:04:52.347 に答える
0

WSGI は標準 API であり、Web サーバーを選択し、その前に Repoze などの WSGI パイプラインを配置できます。

http://repoze.org/を参照

于 2009-11-28T19:09:33.817 に答える