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