Nginx
軽量で C で書かれているため、同じ Web サービスが占有するメモリとリソースが少なくなります
反同時実行性, nginx は開発モデルとして epoll と kqueue を使用し、リクエストの処理は非同期かつノンブロッキングであり、負荷容量は Apache よりもはるかに高くなりますが、Apache はブロッキングです。高い同時実行性では、nginx は低いリソース消費と高いパフォーマンスを維持できますが、Apache は、PHP の処理が遅い場合やフロントエンドの負荷が高い場合にプロセス数が急増し、サービス拒否が発生する傾向があります。
nginx は静的ファイルをうまく処理し、静的処理パフォーマンスは apache の 3 倍以上です
nginx の設計は高度にモジュール化されており、モジュールの作成は比較的簡単です
nginx設定はシンプルで、通常の設定では多くのことが簡単になり、設定を変更した後、-t を使用して設定に問題があるかどうかをテストできます。Apache の設定は複雑です。設定が間違っていることがわかった場合は、再起動するとクラッシュします
nginx は負荷分散サーバーであり、7 層をサポートしています負荷分散
nginx 自体はリバース プロキシ サーバーであり、非常に優れたメール プロキシ サーバーとして使用できます
特に起動が簡単で、実行中でもほぼ 7*24 を中断することなく実行できます。数か月間再起動する必要がなく、サービスを中断することなくソフトウェア バージョンをアップグレードできます
コミュニティが活発で、さまざまな高機能モジュールが迅速に作成されています
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 関連の技術記事の詳細については、Nginx チュートリアル 列にアクセスして学習してください。
以上がnginxとapacheの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。