ホームページ  >  記事  >  運用・保守  >  NginxとApacheの特徴と違いは何ですか

NginxとApacheの特徴と違いは何ですか

王林
王林転載
2023-05-13 20:10:141172ブラウズ

1. Nginx の機能

1. C で書かれた軽量な Web サービスにより、占有メモリとリソースが少なくなります。

2. 非同時実行性、nginx は開発モデルとして epollandkqueue を使用し、リクエストの処理は非同期かつノンブロッキングであり、負荷容量は Apache よりもはるかに高くなりますが、Apache はブロックします。高い同時実行性では、nginx は低いリソース消費と高いパフォーマンスを維持できますが、Apache は、PHP の処理が遅い場合やフロントエンドの負荷が高い場合にプロセス数が急増し、サービス拒否が発生する傾向があります。

3. nginx が開始されると、マスター プロセスが生成され、その後、マスター プロセスは複数のワーカー サブプロセスをフォークし、最後に、各ユーザーのリクエストはワーカーのサブスレッドによって処理されます。

4. nginx のリバース プロキシを実装するように nginx のアップストリームを設定できます。

5. 負荷分散サーバーとして、nginx はレイヤー 7 負荷分散をサポートします。

6. nginx は静的ファイルの扱いに優れており、静的処理性能は apache の 3 倍以上です。

7. 高い同時接続をサポート 1 秒あたりの同時接続リクエストの最大数は、理論的には 50,000 に達する可能性があります。

8. nginx の設定は単純です。通常の設定により、多くのことが簡単になります。設定を変更した後、-t を使用して、設定に問題があるかどうかをテストできます。Apache の設定は複雑です。再起動すると、設定が間違っていることがわかり、クラッシュします。

9. スレッドを使用してユーザー要求を処理し、スレッドはメモリを共有します。少数のプロセスを開くだけでよく、複数のスレッドがプロセスのメモリを共有して、少量のメモリを占有することができます。

10. プロセスが停止すると、複数のユーザーの使用に影響し、安定性が低下します。

11. nginx の設計は高度にモジュール化されており、モジュールの作成は比較的簡単です。

12. nginx自体はリバースプロキシサーバーであり、非常に優れたメールプロキシサーバーとして利用できます。

13. 非常に簡単に起動でき、ほぼ24時間365日稼働し続けることができ、数ヶ月稼働しても再起動する必要がなく、ソフトウェアのバージョンアップも中断することなく行えます。サービス。

14. コミュニティが活発で、さまざまな高性能モジュールが迅速に生産されています。

2. Apache の機能

1. 同期ブロックを選択します。

2. 1 つの接続が 1 つのプロセスに対応します。

3. プロセスを使用してユーザー要求を処理し、MPM (マルチ処理モジュール) を使用してネットワーク ポートにバインドし、要求を受け入れ、要求を処理するサブプロセスをスケジュールします。

4. ユーザーリクエストが多すぎると、多くのプロセスが開かれ、大量のメモリが占​​有されるため、1 秒あたりの最大同時接続リクエスト数は 3,000 を超えてはなりません。

5. プロセスが終了しても、他のユーザーには影響しません。

6. Apache の書き換えは nginx よりも強力です。書き換えが頻繁に行われる場合は、Apache を使用してください。

7. Apache の開発には非常に多くのモジュールがあり、基本的に考えられるものはすべて見つけることができます。

8. Apache はより成熟しておりバグが少ないのに対し、nginx には比較的多くのバグがあります。

9. Apache は非常に安定しています。

10. Apache の PHP サポートは比較的シンプルで、nginx は他のバックエンドとともに使用する必要があります。

11. Apache は動的リクエストの処理に利点があります。一般に、動的リクエストは Apache によって実行する必要がありますが、nginx は静的リクエストと逆リクエストに適しています。

12. Apache は、豊富な機能、成熟したテクノロジー、開発コミュニティを備え、依然として現在の主流です。

両者の主な違いは、Apache は同期マルチプロセス モデルであり、1 つの接続が 1 つのプロセスに対応するのに対し、nginx は非同期であり、複数の接続 (10,000 レベル) が 1 つのプロセスに対応できることです。

一般的に、パフォーマンスが必要な Web サービスには nginx を使用します。

パフォーマンスは必要なく、安定性だけが必要な場合は、Apache を検討してください。Apache のさまざまな機能モジュールは nginx よりも優れています。たとえば、ssl モジュールは nginx よりも優れており、より多くの設定可能な項目があります。

epoll (freebsd 上の kqueue) ネットワーク IO モデルは、nginx の高い処理パフォーマンスの根本的な理由ですが、epoll がすべての場合に勝てるわけではありません。静的サービスを提供する場合、数個のファイルのみ、Apache の選択モデルepoll よりもパフォーマンスが高い可能性があります。

もちろん、これはネットワーク IO モデルの原則に基づく単なる仮定であり、実際のアプリケーションでは実際のテストが必要です。

より一般的な解決策は、フロントエンドの nginx 同時実行防止機能とバックエンドの Apache クラスターを使用することです。これにより、より適切に連携できます。

以上がNginxとApacheの特徴と違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。