私はこのトピックについて検索しましたが、アドバイスは、Django を処理するために静的ファイルと apache+wsgi を提供するために nginx が存在する必要があるようです。この情報の多くは数年前のものであるため、パフォーマンスを低下させることなくこれを簡素化し、Nginx と fastCGI および/または wsgi に依存する方法があるかどうか疑問に思っていました。
私はheroku以外の展開に慣れていないので、何を言っているのかわからないように聞こえるかもしれません.
いいえ、Nginx+fCGI/wsgi と一緒に Apache+wsgi は必要ありません。Nginx は静的ファイルを非常に高速に処理でき、残りのリクエストには fCGI/wsgi を使用します。
この質問への回答[1]およびそこに記載されているその他の関連する質問を読む必要があります。
nginx ルートを使用する場合、最適な選択肢は次のとおりです。
FASTCGI の上で Python WSGI アプリケーションを実行することは、通常、FASTCGI/WSGI アダプターの問題と、それらがサーバーにデプロイされる方法により、それほど良いエクスペリエンスではありません。
Apache/mod_wsgi は依然として許容範囲を超えるソリューションであり、次のように実行すると、より少ないリソースで実際にパフォーマンスが向上します。
ボトルネックはWebサーバーではないため、最終的にはどちらを選択しても問題ありません.適切に設定する限り、サイトが十分なトラフィックを取得しないため、ほとんどの人はそうしません. 、または、何を変更する必要があるかを知るための監視が行われていません。
全体として、管理しやすいと思われるものを選択することが、開始時に行うのに最適な方法です.
実際のパフォーマンスのボトルネックがどうなるか、および監視の重要性に関する背景については、以下をご覧ください。
とはいえ、あなたはHerokuに言及しています。現時点では、Heroku で実際に選択できるのは 1 回だけです。それは、gunicorn を使用することであり、nginx について心配する必要はありません。しかし、Gunicorn だけでは静的メディア アセットを提供するのに適したオプションではないため、Heroku を使用して他の場所で静的アセットを提供することを余儀なくされるため、それ自体が問題です。