Django と同様に、express.js などのフレームワークにはバックエンドを処理する機能があります。なぜ一般に、Apache や Nginx などのサーバー プログラムを開発環境にデプロイする必要があるのですか?
習慣沉默2017-05-16 17:01:04
さまざまなネットワーク環境では、ネットワークに対する要求は通信能力だけではなく、サーバーが分離されていない場合、柔軟性が非常に低くなり、これらの要求に対処するのが非常に困難になります。終わってもいない。以下にいくつかの要件があります:
高いパフォーマンス: nginx と Apache は、構成を通じてさまざまなシナリオでパフォーマンスを大幅に向上させることができ、高い同時実行性を実現するためにさらに徹底的に最適化されています。
セキュリティ: SSL と証明書のサポート。他のサーバーはこれを実装していないか、実装に一貫性がない可能性があります。
エージェントの配布: 複雑な内部環境の公開を避けるための統合されたエントリ ポイント。
巴扎黑2017-05-16 17:01:04
Django チュートリアルの冒頭で次のように述べられています:
引用元: https://docs.djangoproject.co...Django 開発サーバーは、純粋に Python で書かれた軽量 Web サーバーです。これが Django に組み込まれているため、Apache などの実稼働サーバーの構成に取り組む必要がなく、迅速に開発できるようになります。生産の準備が整いました。
ここで注意してください: このサーバーは本番環境に似たものでは使用しないでください (私たちは Web サーバーではなく、Web フレームワークを作成することを目的としています)。
Django に付属する Web サーバーは、開発環境を簡素化するためのものであり、オンラインの実稼働環境で使用することはまったく意図されていません。オンラインで専門のサーバーを使用する必要があります。これは、それ自体が信頼できるサーバーである Tornado とは異なります。
Node.js に関しては、確かに付属のものを使用でき、問題はありませんが、Node.js はシングルスレッド
であることを知っておく必要があります。32 コアのサーバーがある場合、シングルスレッドの Node.js プログラムを実行するのはあまりにも無駄なので、複数の Node.js プロセスを起動し、それぞれ異なるポート番号をリッスンし、その逆に Nignx を使用します。このようにして、サーバーのリソースを最大限に活用できます。