違い: 1. Apache は同期マルチプロセス モデルであり、1 つの接続が 1 つのプロセスに対応するのに対し、nginx は非同期であり、複数の接続が 1 つのプロセスに対応でき、nginx は Apache よりも高い負荷容量を備えています。2 . apache は動的リクエストの処理に適しており、nginx は静的リクエストと逆リクエストの処理に適しています; 3. nginx の設定は単純ですが、apache の設定は複雑です; 4. apache の書き換えは nginx よりも強力です; 5. apache はより成熟しており、バグは少ないですが、nginx には比較的多くのバグがあります。
#このチュートリアルの動作環境: Windows7 システム、PHP8.1 バージョン、DELL G3 コンピューター
Nginx
- 軽量で、C で書かれており、同じ Web サービスが占有するメモリとリソースが少なくなります。
- 同時実行防止、nginx は開発として epoll を使用します。このモデルでは、kqueue はリクエストを非同期かつノンブロッキングに処理し、その負荷容量は Apache の負荷容量よりもはるかに高く、Apache はブロックしています。高い同時実行性では、nginx は低いリソース消費と高いパフォーマンスを維持できますが、Apache は、PHP 処理が遅い場合やフロントエンドの負荷が高い場合にプロセス数が急増し、サービス拒否が発生する傾向があります。
- nginx は静的ファイルを適切に処理し、静的処理パフォーマンスは apache の 3 倍以上です
- nginx の設計は高度にモジュール化されており、モジュールの作成は比較的簡単です
- nginx の設定はシンプルです。通常の設定では多くのことが簡単になります。設定を変更した後は、-t を使用して設定に問題があるかどうかをテストできます。 Apache の設定が複雑で、再起動すると設定が間違っていることが分かりクラッシュしてしまいます
#nginx は負荷分散サーバーとして 7 層の負荷分散をサポートしています nginx 自体はリバース プロキシ サーバーであり、非常に優れたメール プロキシ サーバーとして使用できます。 は起動が非常に簡単で、ほとんど実行できます。 24 時間 365 日、中断なく稼働します。数か月稼働しても、再起動する必要がなく、中断のないサービスを提供できます。特定の状況下でのソフトウェア バージョンのアップグレード コミュニティは、アクティブでさまざまな高性能モジュールが迅速に生成されます #Apache
Apache の書き換えは nginx よりも強力です。書き換えは頻繁に行われます。apache を使用してください。
-
apache はこれまでに開発されており、非常に多くのモジュールがあります。基本的にはすべて見つけることができます。
# #apache はより成熟していてバグが少ないのに対し、nginx は比較的バグが多いです
apache は非常に安定しています
apache の PHP サポートは比較的安定していますシンプル、nginx は他のバックエンドと組み合わせて使用する必要があります
apache は動的リクエストの処理に利点があります、この点では nginx は役に立ちません、一般的な動的リクエストは Apache によって実行される必要があります、 nginx は静的およびリバースに適しています。
- #Apache は依然として現在の主流であり、豊富な機能、成熟したテクノロジー、開発コミュニティを備えています
- ##概要#両者の主な違いは、Apache は同期マルチプロセス モデルであり、1 つの接続が 1 つのプロセスに対応するのに対し、nginx は非同期であり、複数の接続 (10,000 レベル) が 1 つのプロセスに対応できることです。
一般的にたとえば、パフォーマンスが必要な Web サービスには nginx を使用します。パフォーマンスを必要とせず、安定性だけを求める場合は、Apache を検討してください。後者のさまざまな機能モジュールが前者よりも適切に実装されており、たとえば、ssl モジュールは前者よりも優れており、設定可能な項目が豊富です。 epoll (freebsd 上の kqueue) ネットワーク IO モデルは、nginx の高い処理パフォーマンスの根本的な理由ですが、epoll がすべての場合に勝てるわけではありません。それ自体が静的サービスを提供する場合、ファイルは数個しかなく、Apache の選択モデルは次のとおりである可能性があります。 epoll よりもパフォーマンスが優れています。もちろん、これはネットワーク IO モデルの原則に基づく単なる仮定であり、実際のアプリケーションは実際にテストする必要があります。
nginx は Apache よりも高速であるのに、なぜ nginx が Apache を置き換えないのでしょうか?
この 2 つは焦点が異なるため、Apache 自体には多くの組み込み機能があり、他のものの助けを借りずにほぼすべての Web タイプのアプリケーションをサポートできます。 Nginx は異なり、静的ファイル処理と高い同時実行性に利点があります。
Apache は完全性と安定性に重点を置き、Nginx は軽量性と高効率に重点を置いています。多くの場合、Apache と Nginx は一緒に使用されます。Nginx は Apache の前に構成され、次の目的に使用されます。静的ファイルのブロック、リクエスト (Web サイトのリソース リクエストが今日の大部分を占めています)、Nginx が処理できないコンテンツ ディッシュは、処理のために Apache に転送されます。
Nginx と Apache を選択するべきですか?
apache は php の実行に適しており、動的実行に適しています
nginx は静的実行に適しています。
-
人気の lanmp アーキテクチャでは、Apache と nginx が同時に使用されるようになり、静的 Web ページは nginx で処理され、動的 Web ページは Apache で処理されるため、サーバーのパフォーマンスを最大化できます。 。
-
一般的な解決策は、フロントエンドの nginx が非同時実行性であり、バックエンドの Apache クラスターがより適切に連携することです。
-
プログラミング関連の知識について詳しくは、
プログラミング ビデオ- をご覧ください。 !
以上がPHPサーバーnginxとapacheの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。