ホームページ  >  記事  >  バックエンド開発  >  ApacheとNginxの長所と短所の比較

ApacheとNginxの長所と短所の比較

WBOY
WBOYオリジナル
2016-08-08 09:30:19807ブラウズ

http://blog.csdn.net/xifeijian/article/details/17385741

1. Apache に対する nginx の利点:
軽量で、Web サービスも提供でき、必要なメモリとリソースが Apache より少ない
アンチ同時実行性が高い場合、nginx はリクエストを非同期かつノンブロッキングに処理しますが、同時実行性が高い場合、nginx は低リソース、低消費量、高パフォーマンスを維持できます。
モジュールの作成は比較的簡単です。高性能モジュールが迅速に生成されます

nginx に対する apache の利点: 書き換え、nginx の書き換えよりも強力です

動的ページ

モジュールが非常に多いため、基本的に考えられるものはすべて見つけることができます

バグが少ない、nginx比較的バグが多い

超安定

その存在理由は、一般的にパフォーマンスを必要とするWebサービスにはnginxを使用することです。パフォーマンスは必要なく、安定性だけが必要な場合は、Apache を使用してください。後者のさまざまな機能モジュールは前者よりも適切に実装されており、たとえば ssl モジュールは前者よりも優れており、より多くの設定可能な項目があります。ここで注意すべき点の 1 つは、epoll (freebsd 上の kqueue) ネットワーク IO モデルが nginx の高い処理パフォーマンスの根本的な理由ですが、すべての状況で epoll が勝者になるわけではなく、少数のファイルのみを提供する静的サービスの場合は、Apache の選択モデルが使用される可能性があります。 epoll よりもパフォーマンスが高くなります。もちろん、これはネットワーク IO モデルの原則に基づいた単なる仮定にすぎませんが、実際のアプリケーションは実際にテストする必要があります。

2. Web サーバーとして: Apache と比較して、Nginx は使用するリソースが少なく、より多くの同時接続をサポートし、より高い効率を反映するため、仮想ホストプロバイダーで特に人気があります。同時接続数が多い場合、Nginx は Apache サーバーの代替として適しています。Nginx は、米国の仮想ホスト ビジネスの責任者によってよく選ばれるソフトウェア プラットフォームの 1 つであり、最大 50,000 の同時接続の応答をサポートできます。これについては Nginx に感謝します。開発モデルとして epoll と kqueue を選択しました。
負荷分散サーバーとして Nginx: Nginx は、内部で Rails および PHP プログラムを直接サポートして外部サービスを提供するだけでなく、HTTP プロキシ サーバーとして外部サービスもサポートします。 Nginx は、システム リソースのオーバーヘッドと CPU 使用効率の両方が Perlbal よりもはるかに優れていることに関係なく C で書かれています。
メール プロキシ サーバーとして: Nginx は非常に優れたメール プロキシ サーバーでもあります (この製品を開発した最初の目的の 1 つも同様です)。メール プロキシ サーバーとして)、Last.fm の説明 成功した素晴らしい使用体験
Nginx は、インストールが非常に簡単で、構成ファイルが非常に簡潔で (Perl 構文もサポートできます)、バグがほとんどないサーバーです。 : Nginx は起動が非常に簡単で、ほぼ 7*24 間中断することなく実行できます。また、サービスを中断せずにソフトウェアのバージョンをアップグレードすることもできます。シンプルですが、Apache は複雑です
Nginx の静的処理パフォーマンスは Apache の 3 倍以上です
Apache の PHP サポートは比較的シンプルです
Apache には Nginx よりも多くのコンポーネントがあります。多くの大規模インターネット企業はすでに nginx を Web サーバーの第一候補として使用しています。
4.
主な違いは、Apache は同期マルチプロセス モデルであり、1 つの接続が 1 つのプロセスに対応することですが、nginx は複数の接続 (10,000 レベル) が 1 つのプロセスに対応することができます

5.まあ、消費メモリは少ないですが、Apache が依然として主流であり、多くの豊富な機能を備えていることは間違いありません。したがって、nginx がニーズに合っていると判断される場合は、nginx を使用する必要があります。

apache は本質的にマルチコア処理をサポートしていないため、フロントエンドとして nginx を使用し、バックエンドとして apache を使用することをお勧めします。大規模なWebサイトはnginxに付属のクラスター機能を使用することをお勧めします

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


7. nginx が動的リクエストを処理するのは役に立ちません。一般に、動的リクエストを処理するには Apache が必要であり、nginx は静的リクエストとリバースリクエストにのみ適しています。
8. nginx は、負荷パフォーマンスに優れた非常に優れたフロントエンド サーバーです。Laoben で nginx を開き、Webbench を使用して 10,000 の静的ファイル リクエストをシミュレートするのは簡単です。 Apache は php などの言語のサポートが充実しています。また、Apache は強力なサポート ネットワークがあり、nginx よりも長い期間にわたって開発されています。
9. Nginx が Apache よりも優れている主な理由は 2 つあります: 1. Nginx 自体がリバース プロキシ サーバーである 2. さらに、Nginx はレイヤー 7 ロード バランシングをサポートしています。
10. Web サーバーのニーズによって選択が決まります。ほとんどの場合、静的ファイル処理、PHP-CGI サポート、リバース プロキシ機能、フロントエンド キャッシュ、接続維持など、APACHE よりも nginx の方が優れています。 Apache+PHP (プリフォーク) モードでは、PHP の処理が遅い場合やフロントエンドの負荷が高い場合、Apache プロセスの数が急増し、サービス妨害が発生しやすくなります。
11. nginx lua モジュールをご覧ください: https://github.com/chaoslaw... Apache には nginx より多くのモジュールがありますが、Apache は lua で直接実装できます。なぜですか?ほとんどの人は、nginx にアップデートしたり、新しいことを学ぶのが面倒です。
12. nginx の設定ファイルは非常に簡潔に記述されており、必要なリソースが少なく、強力なプロキシ機能を備えています。
13. Apache は処理のダイナミクスに優れており、書き換えが頻繁に行われる場合には、Nginx の方が適しています。

この記事の出典: インターネットから収集および整理


以上、ApacheとNginxのメリット・デメリットの比較を内容も含めて紹介しましたので、PHPチュートリアルに興味のある方の参考になれば幸いです。

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