[解決済み] uWSGIは何のためにあるのか?
質問
私は 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
. これは悪い名前を選びましたね。
興味のある人のために、私が書いた ブログ記事 にて、より詳細な情報、歴史、およびいくつかの例を紹介しています。
関連
-
[解決済み] for'ループでインデックスにアクセスする?
-
[解決済み] リスト内のアイテムのインデックスを検索する
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] __init__.py は何のためにあるのですか?
-
[解決済み] Dockerコンテナの中から、マシンのローカルホストに接続するにはどうすればよいですか?
-
[解決済み】if __name__ == "__main__": は何をするのでしょうか?
-
[解決済み】__str__と__repr__の違いは何ですか?
-
[解決済み] PyMongoで.sortを使用する
-
[解決済み] Django で全てのリクエストヘッダを取得するにはどうすれば良いですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Pandasのデータフレームでタプルの列を分割するにはどうしたらいいですか?
-
[解決済み] Pythonのマルチプロセッシングプールimap_unorderedの呼び出しの進捗を表示しますか?
-
[解決済み] PythonからSMTPを使用してメールを送信する
-
[解決済み] pandasのタイムゾーンに対応したDateTimeIndexを、特定のタイムゾーンに対応したナイーブなタイムスタンプに変換する。
-
[解決済み] Ctrl-CでPythonスクリプトを終了できない
-
[解決済み] Flask でグローバル変数はスレッドセーフか?リクエスト間でデータを共有するには?
-
[解決済み] Celeryタスクのユニットテストはどのように行うのですか?
-
[解決済み] Pythonでランダムなファイル名を生成する最良の方法
-
[解決済み] Django filter queryset __in for *every* item in list
-
[解決済み] データクラスとtyping.NamedTupleの主な使用例