nginx
トラフィックの多いWebサイトのWebサーバーとしてより適切な選択でしょうか?
私たちが構築するサイトは、それが違いを生むのであれば、eコマースサイトです。
いずれにせよ、技術的な観点から実際の「なぜ」に本当に興味があります。つまり、nginx
技術的な観点からこのタイプのサイトに適しているのはなぜですか、またはその逆であるのはなぜですか。
マーティン、
一般に、Nginxは、イベント駆動型アーキテクチャであるため、トラフィックの多いサイトに適しています。個別のスレッドで各リクエストを処理するのではなく、ノンブロッキングI / Oを使用して、各スレッドで多くのリクエストを処理します。
このアーキテクチャの重要な側面は、プロセスまたはスレッドの使用を減らすことです。スレッドは2MBから64MBを超えるRAMを消費する可能性があります。したがって、Apacheが10KBのJPEGを提供する場合、実際にはかなりの量のRAMを使用している可能性があります。リクエストがスレッドを数秒間ビジー状態に保つ可能性がある低速のクライアント(スマートフォンなど)がある場合は、さらに悪化します。
多くの人は、Apacheの前でプロキシとしてNginxを実行することが、理想的な中間点であると考えています。Nginxは低速のクライアントと通信し、ごく少量のRAMを使用して通信できます。リクエストがApacheに転送される場合、リクエストの速度は、リモートユーザーの接続ではなく、ローカル接続によって制限されます。これは、ネットワークのボトルネックが、要求(およびメモリを大量に消費するスレッド)を必要以上に存続させないことを意味します。
要するに、Apacheの幅広い機能セットと相まってNginxの低リソースの利点を得ることができます。