違い
両者の主な違いは、Apache が同期マルチプロセス モデルであり、1 つの接続がnginx は非同期であり、1 つのプロセスに複数の接続 (10,000 レベル) が対応できます (推奨学習: apache use)
一般的に言えば、Webパフォーマンスが必要なサービスにはnginxを使用してください。パフォーマンスを必要とせず、安定性だけを求める場合は、apache を検討してください。後者のさまざまな機能モジュールは前者よりも適切に実装されています。たとえば、ssl モジュールは前者よりも優れており、設定可能な項目が増えています。
epoll (freebsd 上の kqueue) ネットワーク IO モデルは nginx の高い処理パフォーマンスの根本的な理由ですが、epoll がすべての場合に勝てるわけではありません。静的サービスを提供する場合、少数のファイルのみ、Apache の選択モデルは epoll よりもパフォーマンスが高い可能性があります。
もちろん、これはネットワーク IO モデルの原則に基づく単なる仮定であり、それについて語る前に実際のアプリケーションをテストする必要があります。
より一般的な解決策は、同時実行に抵抗するためにフロントエンドで nginx を使用し、バックエンドで Apache クラスターを使用することで、より適切に連携することができます。
Apache
apache の書き換えは nginx より強力です、書き換えが頻繁に起こる場合は apache を使用してください
apache は現在まで開発されており、多くのモジュールがあります基本的に考えられるものはすべて見つかります。
apache はより成熟していてバグが少なく、nginx は比較的バグが多いです
apache は非常に安定しています
apache は比較的単純ですPHP のサポート、および nginx の必要性他のバックエンドで
apache を使用すると、動的リクエストの処理に利点がありますが、この点では nginx は役に立ちません。一般に、動的リクエストは Apache で行う必要があり、nginx は静的リクエストに適していますそして逆に。
apache は依然として現在の主流であり、豊富な機能、成熟したテクノロジー、開発コミュニティを備えています
Nginx
軽量、C ライティング、同じ Web を使用サービスが占有するメモリとリソースが少なくなります
反同時実行性、nginx は開発モデルとして epoll と kqueue を使用し、リクエストの処理は非同期でノンブロッキングであり、負荷容量は Apache よりもはるかに高くなりますが、Apache はブロッキングタイプ。高い同時実行性では、nginx は低いリソース消費と高いパフォーマンスを維持できますが、Apache は、PHP の処理が遅い場合やフロントエンドの負荷が高い場合にプロセス数が急増し、サービス拒否が発生する傾向があります。
nginx は静的ファイルをうまく処理し、静的処理パフォーマンスは apache の 3 倍以上です
nginx の設計は高度にモジュール化されており、モジュールの作成は比較的簡単です
nginx設定はシンプルで、通常の設定では多くのことが簡単になり、設定を変更した後、-t を使用して設定に問題があるかどうかをテストできます。Apache の設定は複雑です。設定が間違っていることがわかった場合は、再起動するとクラッシュします
nginx は負荷分散サーバーであり、7 層をサポートしています負荷分散
nginx 自体はリバース プロキシ サーバーであり、非常に優れたメール プロキシ サーバーとして使用できます
特に起動が簡単で、実行中でもほぼ 7*24 を中断することなく実行できます。数か月間再起動する必要がなく、サービスを中断することなくソフトウェア バージョンをアップグレードできます
コミュニティが活発で、さまざまな高性能モジュールが迅速に生産されます
以上がApacheとnginxの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。