1. Apache に対する nginx の利点:
軽量、Web サービスとしても機能し、Apache よりもメモリとリソースの使用量が少ない
同時実行防止、nginx はリクエストを非同期かつノンブロッキングに処理します。 Apache はブロック型 ですが、nginx は高い同時実行性の下で、低リソース消費と高いパフォーマンスを維持できます
高度にモジュール化された設計で、モジュールの作成は比較的簡単です
コミュニティが活発で、さまざまな高性能モジュールが迅速に作成されます
Apache の nginx に対する利点:
リライト、nginx のリライトより強力
動的ページ
モジュールが非常に多く、基本的に考えられるものはすべて見つけることができます
バグが少ない, nginx のバグ 比較的多くの
超安定した
の存在が原因です 一般的に、パフォーマンスを必要とする Web サービスは nginx を使用します。パフォーマンスは必要なく、安定性だけが必要な場合は、Apache を使用してください。
後者のさまざまな機能モジュールは前者よりも適切に実装されており、たとえば ssl モジュールは前者よりも優れており、より多くの設定可能な項目があります。ここで注意すべき点の 1 つは、epoll (freebsd 上の kqueue) ネットワーク IO モデルが nginx の高い処理パフォーマンスの根本的な理由ですが、少数のファイルだけを提供する静的サービスを提供する場合、すべてのケースで epoll が勝てるわけではないということです。 epoll よりもパフォーマンスが高い可能性があります。もちろん、これはネットワーク IO モデルの原則に基づいた単なる仮定であり、それについて話す前に実際のアプリケーションをテストする必要があります。
2. Web サーバーとして: Apache と比較して、Nginx は使用するリソースが少なく、より多くの同時接続をサポートし、より高い効率を反映するため、仮想ホストプロバイダーで特に人気があります。同時接続数が多い場合、Nginx は Apache サーバーに代わる良い選択肢です。Nginx は、米国の仮想ホスト ビジネス オーナーによく選ばれるソフトウェア プラットフォームの 1 つであり、最大 50,000 の同時接続の応答をサポートできます。ありがとうございます。Nginx は開発モデルとして epoll と kqueue を選択してくれました
負荷分散サーバーとしての Nginx: Nginx は内部で Rails と PHP プログラムを直接サポートして外部サービスを提供するだけでなく、HTTP プロキシ サーバーとして外部サービスもサポートします。 Nginx は書き込みに C を使用し、システム リソースのオーバーヘッドと CPU 使用効率の両方が Perlbal よりも優れています。
メール プロキシ サーバーとしても、Nginx は非常に優れたメール プロキシ サーバーです (この製品を開発した最初の目的の 1 つは、メール プロキシ サーバーとしても機能します)、Last.fm は成功した素晴らしい使用体験を説明しています
Nginx は、インストールが非常に簡単で、非常に簡潔な設定ファイル (Perl 構文もサポートします) を備えたサーバーです。バグが非常に少ない: Nginx は特に起動が簡単で、7*24 間中断することなく実行でき、数か月間実行しても再起動する必要はありません。サービスを中断することなくソフトウェア バージョンをアップグレードすることもできます。
3. Nginx の構成はシンプルですが、Apache は複雑です
Nginx の静的処理パフォーマンスは Apache の 3 倍以上です
Apache の PHP サポートは比較的シンプルですが、Nginx は他のバックエンドと併用する必要があります
Apache には Nginx よりも多くのコンポーネントがあります
現在、Web サーバーとしては Nginx が第一の選択肢です
4. 主要な違いは、Apache は同期マルチプロセス モデルであり、1 つの接続が 1 つのプロセスに対応するということです。 、複数の接続 (10,000 レベル) が 1 つのプロセスに対応できます
5. nginx は静的ファイルをうまく処理しますが、時間がかかります メモリが少ないですが、Apache が依然として主流であることは間違いありません。もちろん、nginx がニーズに合っていると判断した場合は、nginx を使用する方が経済的です。
マルチサポートではないという欠点があります。コア処理負荷。フロントエンドとして nginx を使用し、バックエンドとして Apache を使用することをお勧めします。大規模なウェブサイトでは nginx のクラスター機能を使用することをお勧めします
6. 個人的な過去の使用状況から判断すると、nginx の負荷容量は Apache のそれよりもはるかに高いです。最新のサーバーもnginxを使用しています。さらに、nginx の設定を変更した後、Apache が再起動されると、設定に問題があるかどうかをテストできなくなり、変更するときは非常に注意します。多くのクラスター サイトがあり、フロントエンドの nginx は同時実行性が高く、バックエンドの Apache クラスターとの連携も良好です。
7. nginx は動的リクエストの処理には役に立ちません。通常、動的リクエストは Apache によって実行される必要があり、nginx は静的リクエストとリバースリクエストにのみ適しています。
8. 私の個人的な経験から言えば、nginx は非常に優れた負荷パフォーマンスを備えた非常に優れたフロントエンド サーバーです。Laoben で nginx を開き、Webbench を使用して 10,000 の静的ファイル リクエストをシミュレートするのは簡単です。 Apache は php などの言語を適切にサポートしています。さらに、Apache には強力なサポート ネットワークがあり、Nginx が Apache より優れている主な理由は 2 つあります。 Nginx 自体はリバース プロキシ サーバーです。 2. Nginx は 7 層の負荷分散をサポートしています。もちろん、Nginx は Apache よりも高い同時実行性をサポートしている可能性がありますが、NetCraft の統計によると、2011 年 4 月時点でも Apache が 62.71% を占めているのに対し、Nginx は 7.35% です。一般に、Aapche は成熟したテクノロジーと開発コミュニティがすでに非常に優れたパフォーマンスを備えているため、ほとんどの企業にとって依然として第一の選択肢です。
10. Web サーバーのニーズによって選択が決まります。
静的ファイル処理、PHP-CGIサポート、リバースプロキシ機能、フロントエンドキャッシュ、接続維持など、ほとんどの場合、nginxはAPACHEよりも優れています。 Apache+PHP (プリフォーク) モードでは、PHP の処理が遅い場合やフロントエンドの負荷が高い場合、Apache プロセスの数が急増し、サービス妨害が発生しやすくなります。 11. nginx lua モジュールをご覧ください: https://github.com/chaoslaw...Apache には nginx より多くのモジュールがあり、Apache で直接実装できます。 、 なぜ?ほとんどの人は、nginx に更新したり、新しいことを学ぶのが面倒です
12. nginx の場合、その設定ファイルは非常に簡潔で、多くのことがシンプルで効率的で、使用するリソースが少なく、強力なプロキシ機能を備えていることが気に入っています。 . フロントエンド応答サーバーに非常に適しています
13. Nginx は、同時実行性が高く、CPU メモリ使用量が少ないという利点があります
。
以上、ApacheとNginxのメリットとデメリットの比較を内容も含めて紹介しましたが、PHPチュートリアルに興味のある友人の参考になれば幸いです。