ホームページ >バックエンド開発 >PHPチュートリアル >ApacheとNginxの長所と短所を比較する

ApacheとNginxの長所と短所を比較する

巴扎黑
巴扎黑オリジナル
2017-08-17 09:07:451620ブラウズ


概要: Apache と Nginx の長所と短所の比較 1. Apache に対する nginx の利点: 軽量で、Web サービスとしても機能し、Apache よりもメモリとリソースの消費が少なくなります。 反同時実行性では、Apache がブロックしている間、nginx はリクエストを非同期かつ非ブロック的に処理します。同時実行性が高い場合、nginx は同時実行性を低く維持できます。

Apache と Nginx の長所と短所の比較リソース
非同時実行性、Apache がブロックしている間、nginx はリクエストを非同期かつ非ブロック的に処理します。高度にモジュール化された設計で、モジュールの作成が比較的簡単です。
コミュニティが活発で、さまざまな高パフォーマンスのモジュールが迅速に作成されます。
Apache の利点:
nginx のリライトよりも強力です
モジュールが非常に多くあります。基本的に思いつく限りのすべてを見つけることができます
バグが少なく、nginx は比較的多くのバグがあります
非常に安定しています
その存在理由は、一般的にパフォーマンスを必要とする Web サービスには nginx を使用します。パフォーマンスは必要なく、安定性だけが必要な場合は、Apache を使用してください。後者のさまざまな機能モジュールは前者よりも適切に実装されており、たとえば ssl モジュールは前者よりも優れており、設定可能な項目が増えています。ここで注意すべき点の 1 つは、epoll (freebsd 上の kqueue) ネットワーク IO モデルが nginx の高い処理パフォーマンスの根本的な理由ですが、静的サービス、少数のファイルのみを提供する場合、Apache の選択モデルに epoll がすべての場合に勝つわけではないということです。 epoll よりもパフォーマンスが高い可能性があります。もちろん、これはネットワーク IO モデルの原則に基づいた単なる仮定にすぎませんが、実際のアプリケーションは実際にテストする必要があります。

2. Web サーバーとして: Apache と比較して、Nginx は使用するリソースが少なく、より多くの同時接続をサポートし、より高い効率を反映するため、仮想ホストプロバイダーの間で特に人気があります。同時接続数が多い場合、Nginx は Apache サーバーの代替として適しています。Nginx は、米国の仮想ホスト ビジネス オーナーによく選ばれるソフトウェア プラットフォームの 1 つであり、最大 50,000 の同時接続の応答をサポートできます。 Nginx 開発モデルとして epoll と kqueue を選択しました。
負荷分散サーバーとして Nginx: Nginx は内部で外部にサービスを提供する Rails および PHP プログラムを直接サポートするだけでなく、Nginx が書かれている HTTP プロキシ サーバーとして外部サービスもサポートします。システム リソースのオーバーヘッドと CPU 使用効率の両方が Perlbal よりもはるかに優れています。
メール プロキシ サーバーとして: Nginx は非常に優れたメール プロキシ サーバーでもあります (この製品を開発した最初の目的の 1 つは、メール プロキシ サーバーとしても機能します)。メール プロキシ サーバー)、Last.fm 成功した素晴らしい使用体験について説明します
Nginx は、インストールが非常に簡単で、非常に簡潔な設定ファイルを持ち (Perl 構文もサポートできます)、バグがほとんどないサーバーです。は特に起動が簡単で、ほぼ 24 時間年中無休で実行できます。断続的に実行されるため、数か月間実行しても再起動する必要はありません。また、サービスを中断することなくソフトウェアのバージョンをアップグレードすることもできます。 Nginx の構成はシンプルですが、Apache は複雑です
Nginx の静的処理パフォーマンスは Apache の 3 倍以上です
Apache の PHP サポートは比較的シンプルですが、Nginx は他のバックエンドと併用する必要があります
Apache には Nginx よりも多くのコンポーネントがあります
現在、Nginx はWeb サーバーの第一の選択肢

4. *主な違いは、Apache は同期マルチプロセス モデルで、1 つの接続が 1 つのプロセスに対応することです。nginx は非同期であり、複数の接続 (10,000 レベル) が 1 つのプロセスに対応できることです

5 nginx は静的ファイルをうまく処理し、メモリ消費量も少なくなりますが、現時点でも Apache が主流であることは間違いありません。ニーズがある場合は、nginx を使用する方が経済的です

6. 個人的な過去の使用状況から、nginx の負荷容量は Apache の負荷容量よりもはるかに高いです。 ※新サーバーもnginxを使用しております。さらに、nginx の設定を変更した後、Apache が再起動されると、設定に問題があるかどうかをテストできなくなり、変更するときは非常に注意します。多くのクラスター サイトがあり、フロントエンドの nginx は同時実行性が高く、バックエンドの Apache クラスターとの連携も良好です。

7. nginx が動的リクエストを処理するのは役に立ちません。通常、nginx は静的リクエストとリバースリクエストを処理するのにのみ適しています。

8. 私の個人的な経験から言えば、nginx は負荷パフォーマンスに優れた非常に優れたフロントエンド サーバーです。Laoben で nginx を開き、Webbench を使用して 10,000 の静的ファイル リクエストをシミュレートするのは簡単です。 Apache は php などの言語のサポートが充実しています。また、apache は nginx よりも長く開発されており、バグが少ないという欠点があります。フロントエンドとバックエンドとして nginx を使用することをお勧めします。大規模なWebサイトにはnginxのクラスター機能を使用することをお勧めします

9. Nginx が Apache よりも優れている主な理由は 2 つあります: 1. Nginx 自体がリバース プロキシ サーバーである 2. Nginx はレイヤー 7 ロード バランシングをサポートしています。もちろん、Nginx は Apache よりも高い同時実行性をサポートしている可能性がありますが、NetCraft の統計によると、 2011 年 4 月の統計によると、Apache が依然として 62.71% を占めているのに対し、Nginx は 7.35% です。したがって、一般的に、Aapche はその成熟したテクノロジと開発コミュニティ、およびその非常に優れたパフォーマンスにより、依然としてほとんどの企業にとって第一の選択肢となっています。

10. Web サーバーのニーズによって選択が決まります。ほとんどの場合、静的ファイル処理、PHP-CGI サポート、リバース プロキシ機能、フロントエンド キャッシュ、接続維持など、APACHE よりも nginx の方が優れています。 Apache+PHP (プリフォーク) モードでは、PHP の処理が遅い場合やフロントエンドの負荷が高い場合、Apache プロセスの数が急増し、サービス妨害が発生しやすくなります。

11. nginx lua モジュールをご覧ください: https://github.com/chaoslaw... Apache には nginx よりも多くのモジュールがありますが、Apache が最も人気があります。ほとんどの人は nginx に更新したり、新しいことを学ぶのが面倒です

12. nginx の場合、その設定ファイルは非常に簡潔で、多くのことがシンプルで効率的で、使用するリソースが少なく、強力なプロキシ機能を備えていることが気に入っています。フロントエンド応答サーバーであることが非常に適しています

13. Apache は処理ダイナミクスに優れており、書き換えが頻繁に行われる場合は、Apache が最適です。

以上がApacheとNginxの長所と短所を比較するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。