1. ホーム
  2. python

[解決済み] uWSGIは何のためにあるのか?

2022-08-26 20:51:25

質問

私は WSGI 仕様 のようなサーバーがどのように動作するのかを理解しようとしています。 uWSGI のようなサーバーが、どのようにこの図式に適合するのかを理解しようとしています。WSGI 仕様のポイントは、nginx のようなウェブ サーバーと、 を使って書くようなウェブ アプリケーションを分離することだと理解しています。 フラスコ . 私が理解していないのは、uWSGIが何のためにあるのかということです。なぜnginxは私のFlaskアプリケーションを直接呼び出せないのですか?flaskは直接WSGIを話すことが出来ないのですか?なぜuWSGIはそれらの間に入る必要があるのでしょうか?

WSGIの仕様には2つの側面があります: サーバとウェブアプリです。uWSGIはどちら側なのでしょうか?

どのように解決するのですか?

なるほど、これでわかったような気がします。

なぜ nginx は私の Flask アプリケーションを直接呼び出せないのでしょうか?

なぜなら nginx は WSGI 仕様をサポートしていないからです。技術的には nginx は WSGI を実装することは可能ですが、そうしていないだけです。

そうであるならば、私たちはこの仕様を実装したウェブサーバーが必要であり、それが uWSGI サーバがそれです。

なお uWSGI は本格的な http サーバであり、それ自体でうまく動作します。私はこれを何度か使用したことがありますが、とてもうまくいきました。静的なコンテンツに超高速のスループットが必要な場合は nginx の前に uWSGI サーバーの前に置くことができます。そうすると、これらは以下のような低レベルのプロトコルで通信します。 uwsgi .

"なんだなんだ! またuwsgiってやつか!!" という質問ですね。ええ、混乱しますよね。参照するときに uWSGI を参照するときは、httpサーバーについて話していることになります。あなたが uwsgi (すべて小文字) について話している場合、それは バイナリプロトコル という uWSGI サーバ のような他のサーバーと話すために使用します。 nginx . これは悪い名前を選びましたね。

興味のある人のために、私が書いた ブログ記事 にて、より詳細な情報、歴史、およびいくつかの例を紹介しています。