55

Amazon の EC2 を介した Django アプリのデプロイの多くは、HTTP サーバー NGINX と Gunicorn を使用します。

それらが実際に何をしているのか、なぜ両方が並行して使用されているのか疑問に思っていました。両方を並行して実行する目的は何ですか?

4

2 に答える 2

77

それらは並行して使用されません。NGINX はリバース プロキシです。一列目です。着信接続を受け入れ、次にどこに行くべきかを決定します。また、(通常) CSS、JS、画像などの静的メディアも提供します。また、SSL による暗号化、キャッシュなどの他のことも実行できます。

Gunicorn は次のレイヤーで、アプリケーション サーバーです。NGINX は、着信接続が対象www.domain.comであることを認識し、(構成ファイルを介して) その接続を Gunicorn に渡す必要があることを認識します。Gunicorn は、基本的に次のWSGIサーバーです。

Web サーバーと Web アプリケーションまたはフレームワーク間のシンプルでユニバーサルなインターフェース

Gunicorn の仕事は、Django インスタンスを管理および実行することです (django-admin runserver開発中の使用と同様) 。

このセットアップとは対照的に、mod_wsgiモジュールで Apache を使用します。この場合、アプリケーション サーバーは実際には Apache の一部であり、モジュールとして実行されます。

于 2012-11-01T18:18:13.687 に答える