web-dev-qa-db-ja.com

WSGIとFCGIの間に速度の違いはありますか?

Webから、WSGIはpython Web開発/フレームワークのCGIであることがわかりました。FCGIはさまざまな言語のより一般化されたゲートウェイのようです。パフォーマンスの違いがわかりません。言語pythonおよびC/++を参照する2つ。

35
torger

正解です。WSGIはPythonプログラムAPI定義であり、FASTCGIは言語に依存しないソケットワイヤプロトコル定義です。事実上、WSGIが上位層である異なる層にあります。つまり、WSGIを実装できます。たまたまFASTCGIを使用してWebサーバーと通信したものに加えて、その逆はありませんでした。

一般に、FASTCGIはソケットワイヤプロトコルであるため、使用するには常に何らかの種類のプログラムインターフェイスが必要です。 Pythonそのようなオプションの1つはWSGIです。FASTCGIは目的を達成するための手段にすぎないため、WSGIは同等のソケットワイヤプロトコルではないため、その場合のパフォーマンスをWSGIと実際に比較することはできません。 、ただしFASTCGI自体のユーザー。

FASTCGIの上でさまざまな言語インターフェイスのパフォーマンスを比較することもできますが、下位のネットワーク層とサーバー要求の処理がボトルネックではないため、一般にそれ自体はまったく意味がありません。代わりに、アプリケーションコードとデータベースはになります。

72

それらは2つの異なるものです。 WSGIはPython Webアプリケーションを作成するための特定のインターフェイスです。WSGIインターフェイスを提供するためのほぼすべてのWebサーバープロトコルのラッパーがあります。FastGCI(FCGI)はそのようなWebサーバープロトコルの1つです。したがって、WSGIは抽象化レイヤーですが、CGI/FastCGI/mod_pythonは、実際のWebサーバーがアプリケーションと通信する方法です。一部のコードはネイティブインターフェイスをWSGIに変換する必要があります(wsgirefにはCGIモジュールがあり、FastCGIにはflupがあります)。 。Apacheモジュールで直接変換を行うApache用のmod_wsgiもあるため、Pythonラッパーは必要ありません。

25