この場合、NGINXはリバースプロキシとしてのみ機能し、要求を受け取り、それらをアプリケーションサーバー(UWSGI)にプロキシします。
UWSGIサーバは、WSGIインタフェースを使用してFlaskアプリケーションをロードします。実際にUWSGIをインターネットからの要求に直接聞かせ、必要に応じてNGINXを削除することができますが、ほとんどはリバースプロキシの背後で使用されます。 docsから
:
uWSGIは、Webサーバとの統合のいくつかのメソッドをサポートしています。また、HTTPリクエストを単独で処理することもできます。
WSGIは単なるインターフェイス仕様であり、単純に言えば、サーバーとアプリケーションの間で要求と応答を渡すために実装する方法を教えてくれます。FlaskやDjangoなどのフレームワークを使用する場合、これはフレームワーク自体によって処理されます。
つまり、WSGIは基本的にPythonアプリケーション(Flask、Djangoなど)とWebサーバー(UWSGI、Gunicornなど)の間の契約です。メリットは、Webサーバーをほとんど変更せずに変更できることです。これは、PEP-333に記載されているように、実際にはWSGI仕様に準拠していることを示しています。名前にわずか数[1] -
Pythonは現在、Zopeの、キホーテ、のWebware、のskunkweb、PSO、およびツイストウェブなどのWebアプリケーションフレームワーク、さまざまなを誇っています。一般的に言えば、Webフレームワークの選択によって、使用可能なWebサーバーの選択肢が制限され、逆もまた同様です。
WerkzeugをHTTPサーバーとして使用してFlaskアプリケーションを実行することは可能ですが、実稼動準備ができていません。 uWSGIは複数の問題を解決: *はHTTP *(Cで速い)解析とWSGIアプリ とのインターフェースは、より良好な同時実行 ための複数のプロセス/スレッドにアプリ* WSGIアプリの監督として作用起動 –