「runserver」コマンドが実行されたときにDjangoが使用するサーバーのタイプは何ですか? ドキュメントには多かれ少なかれ「軽量開発 Web サーバー」と書かれています。たとえばApacheですか?前もって感謝します。
1 に答える
それはまさに、Django に同梱され、開発目的のみを目的とした、Python で実装されたシンプルで軽量な Web サーバーです。それ自体は独立した Web サーバーではなく、純粋に Django でアプリケーションを開発することを目的としています。運用 Web サーバーで必要なすべての機能を提供していないため、運用環境では決して使用しないでください。
Web サーバーは事実上すべてのプログラミング言語で実装できるため、Python で実装されたものを Django と共に出荷して、Apache などをインストールしなくてもすぐに使用できるようにすることは理にかなっています。Apache や Nginx など、本番環境で使用される可能性のあるほとんどの Web サーバーは C で記述されているため、Django と一緒に出荷するのは現実的ではありません。
また、独自の開発サーバーを出荷すると、複雑さが軽減されます。Apache と Nginx はどちらもかなりの量の構成を必要とする複雑なソフトウェアであり、開発中にそれを自動化する方法はありますが、コードを書きたいときに実際に対処しなければならないものではありません。開始するために必要なのは、静的コンテンツと動的コンテンツを提供するものだけです。必要な他の多くの機能は必要ありません。PHP でさえ開発サーバーに同梱されていることは注目に値します。
Django プロジェクトを稼働させるときは、もちろん適切な Web サーバーを使用する必要があります。一般に、Django では、運用環境では 2 つの Web サーバーを使用することをお勧めします。1 つは静的コンテンツを提供し、もう 1 つは動的コンテンツを提供します。静的コンテンツの提供に Django が関与すると速度が低下するためです。これは最初は奇妙に思えますが、実際には非常に理にかなっています。なぜなら、1 つの Web サーバーをすべての静的コンテンツを提供するように設定してから、標準以外のポートで実行されている他のサーバーにリバース プロキシを設定するためです。 、およびすべての動的コンテンツを提供します。現在のプロジェクトのセットアップは、静的コンテンツ用の Nginx と動的コンテンツ用の Gunicorn です。