Amazon EC2のDjangoアプリのデプロイメントの多くは、HTTPサーバーNGINXとGunicornを使用しています。NGINXとGunicornは並行してどのような目的を持っていますか?
私は彼らが実際に何をしているのか、なぜ両方が並行して使用されているのだろうと思っていました。両方を並行して実行する目的は何ですか?
Amazon EC2のDjangoアプリのデプロイメントの多くは、HTTPサーバーNGINXとGunicornを使用しています。NGINXとGunicornは並行してどのような目的を持っていますか?
私は彼らが実際に何をしているのか、なぜ両方が並行して使用されているのだろうと思っていました。両方を並行して実行する目的は何ですか?
これらは並行して使用されません。 NGINXはreverse proxyです。それは最初の行です。着信接続を受け入れ、次にどこに行くべきかを決定します。また、(通常)CSS、JS、イメージなどの静的メディアも提供します。 SSLを介した暗号化、キャッシングなどの他の処理を行うこともできます。
Gunicornは次のレイヤーで、application serverです。 NGINXは、着信接続がwww.domain.com
であることを認識し、(接続設定ファイルを介して)その接続をGunicornに渡す必要があることを認識します。 Gunicornの仕事はと類似(Djangoのインスタンス(複数可)を管理し、実行することで、WebサーバーとWebアプリケーション間の
シンプルかつ汎用インタフェースまたは
をフレームワーク:Gunicornは基本的にWSGIサーバーですdjango-admin runserver
を開発中に使用)
この設定とは対照的に、mod_wsgi
モジュールを持つApacheを使用します。この状況では、アプリケーションサーバーは実際にはモジュールとして動作するApacheの一部です。
@Timmy O'Mahony、wsgiファイル(djangoプロジェクトを作成するときに来る)とgunicornの違いは何ですか – Shiva
[この回答](http://serverfault.com/questions/220046/why -is-setting-nginx-as-a-reverse-proxy-a-good-idea)は、nginxの詳細と利点を深く理解しています。 –
[この質問](http://stackoverflow.com/questions/13004484/deploying-django-with-gunicorn-and-nginx/13004973#13004973)を参照してください。これは、ティミーの答えよりも少し詳細です。 –
@BurhanKhalidが助けてくれてありがとう、 – noahandthewhale