web-dev-qa-db-ja.com

gunicornでnginxを使用する目的は何ですか?

フラスコ/ Pythonを使用したRESTAPIアプリケーションにgunicornを使用したいと思います。ここでnginxをgunicornに追加する目的は何ですか? gunicornサイトでは、nginxでgunicornを使用することを推奨しています。

10
eddys

これは私が満足のいく答えを見つけようとしていなかったときに私が偶然見つけた満足のいく引用された答えです。基本的に、Gunicornは本格的なWebサーバーとして設計されていないことを学びましたが、nginxは本格的なWebサーバーです。

...待って、なぜ2台のサーバーが必要なのですか? Gunicornは、nginxの背後で実行されるアプリケーションWebサーバー(前面のWebサーバー)と考えてください。 GunicornはWSGIと互換性があります。 FlaskやDjangoなど、WSGIをサポートする他のアプリケーションと通信できます。

ソース: https://realpython.com/blog/python/kickstarting-flask-on-ubuntu-setup-and-deployment/

6
eddys

NginxはGunicornのリバースプロキシです。 Gunicornはflaskアプリを提供し、Ngingはその前に座って、リクエストの送信先を決定します。たとえば、受信リクエストがhttpリクエストの場合、Nginxはそれをgunicornにリダイレクトします。 Nginx ang Gunicornの使用方法とデプロイ方法の詳細については、ここから開始してください: http://rahmonov.me/posts/run-a-Django-app-with -gunicorn-in-ubuntu-16-04 /

8

Djangoマスコットがポニーである理由を知っていますか?ストーリーは、Djangoには、ORM、あらゆる種類のミドルウェア、管理サイト…「他に何が欲しいの、ポニー?」そうですね、Gunicornは「GreenUnicorn」の略です-obeythetestinggoat.com

  • Nginxはサーバーの前面です。
  • Gunicornは、単一のサーバー(Ubuntuなど)で複数のDjangoプロジェクト(各プロジェクトはGunicornを利用したwsgiアプリケーション)を実行します。

すべてのリクエストはnginxに届き、どのgunicornアプリケーションを使用するかを尋ね、リダイレクトします。

[〜#〜] note [〜#〜]-ローカルのDjangoサーバーとは異なり、Gunicornは静的ファイルを自動的に提供できません。したがって、そのためには再びnginxが必要になります。

2
subha.py

Gunicornは、pythonアプリケーションインスタンスを実行するためのアプリケーションサーバーです。

NGINXはリバースプロキシです。着信接続を受け入れ、次にどこに行くべきかを決定します。ギユニコーンの前です。

2
lostcitizen

本番環境では、nginxはリバースプロキシとして機能します。これは、ユーザーがブラウザからnginxを押すと、nginxが呼び出しをアプリケーションに転送することを意味します。お役に立てれば。

0
Asim