ホームページ  >  記事  >  バックエンド開発  >  nginxとApacheのメリットとデメリット

nginxとApacheのメリットとデメリット

WBOY
WBOYオリジナル
2016-08-08 09:24:071041ブラウズ

このセクションの内容:
nginx と apache の長所と短所

1. Apache に対する nginx の利点:
軽量で、Web サービスとしても機能し、Apache サーバーよりもメモリとリソースの消費が少ない
同時実行防止、nginx は処理中です。リクエストは非同期で非ブロッキングですが、高い同時実行性では、nginx は低リソース、低消費量、高パフォーマンスを維持できます。
モジュールの作成は比較的簡単です。
nginx に対する Apache の利点:
nginx のリライトよりも強力なリライト
動的ページ
モジュールが非常に多く、基本的に考えられるものはすべて見つけることができます
バグが少ないnginxは比較的バグが多い
超安定

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


2. Web サーバーとして: Apache と比較して、Nginx は使用するリソースが少なく、より多くの同時接続をサポートし、より高い効率を反映するため、仮想ホストプロバイダーの間で特に人気があります。同時接続数が多い場合、Nginx は Apache サーバーに代わる良い選択肢です。Nginx は、米国の仮想ホスト ビジネスの責任者によってよく選ばれるソフトウェア プラットフォームの 1 つです。おかげで、最大 50,000 の同時接続の応答をサポートできます。 Nginx へ 開発モデルとして epoll と kqueue を選択しました。
負荷分散サーバーとして Nginx: Nginx は外部パーティにサービスを提供するために内部で Rails および PHP プログラムを直接サポートするだけでなく、Nginx が書かれた HTTP プロキシ サーバーとして外部サービスもサポートします。 C では、システム リソースのオーバーヘッドと CPU 使用効率の両方の点で、Perlbal よりもはるかに優れています。

メール プロキシ サーバーとして: Nginx は非常に優れたメール プロキシ サーバーでもあります (この製品を開発した最初の目的の 1 つも同様です)。メール プロキシ サーバーとして)、Last Last .fm では、成功した素晴らしい使用体験について説明しています。

Nginx は、インストールが非常に簡単で、構成ファイルが非常に簡潔で (Perl 構文もサポートできます)、必要なものはほとんどありません。バグ: Nginx は起動が非常に簡単で、ほとんどの場合、7 時間 365 日継続して実行でき、数か月間実行しても再起動する必要はありません。また、Nginx の設定を中断することなくソフトウェアのバージョンをアップグレードすることもできます。はシンプルですが、Apache は複雑です
Nginx の静的処理パフォーマンス比は Apache の 3 倍以上です
Apache の PHP サポートは比較的シンプルですが、Nginx は他のバックエンドと併用する必要があります
Apache には Nginx よりも多くのコンポーネントがあります
現在では Nginx が第一の選択肢ですWeb サーバー用

4. 主要な違いは、Apache は同期マルチプロセス モデルであり、1 つの接続が 1 つのプロセスに対応するのに対し、nginx は非同期であり、複数の接続 (10,000 レベル) が 1 つのプロセスに対応できることです。ファイルの保存性が高く、メモリ消費も少ないのは間違いありませんが、豊富な機能を備えた Apache が現在でも主流であるため、nginx がニーズに合っていると判断した場合には、それらを使用する必要があります。 nginx はより経済的な方法になります
apache にはマルチコア処理負荷をサポートしていないという欠点があるため、バックエンドとして nginx を使用することをお勧めします。大規模な Web サイトでは、nginx 6 のクラスター機能を使用することをお勧めします。個人的な使用状況から判断すると、nginx の負荷容量は Apache の負荷容量よりもはるかに高いです。最新のサーバーもnginxを使用しています。さらに、nginx の設定を変更した後、Apache が再起動されると、設定に問題があるかどうかをテストできなくなり、変更するときは非常に注意します。多くのクラスター サイトがあり、フロントエンドの nginx は同時実行性が高く、バックエンドの Apache は適切に連携します。

7. nginx が動的リクエストを処理するのは役に立ちません。一般に、動的リクエストを処理するには Apache が必要であり、nginx は静的リクエストとリバースリクエストにのみ適しています。


8. 私の個人的な経験から言えば、nginx は非常に優れた負荷パフォーマンスを備えた非常に優れたフロントエンド サーバーです。Laoben で nginx を開き、Webbench を使用して 10,000 の静的ファイル リクエストをシミュレートするのは簡単です。 Apache は php
などの言語を適切にサポートしています。さらに、Apache は強力なサポート ネットワークを備えており、Nginx は 2 つの主な点で Apache よりも優れています。はリバース プロキシ サーバーです。 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 モジュール: Apache は、最も一般的な lua を使用して直接実装できます。

12. nginx の場合、設定ファイルは非常に簡潔に記述されており、通常の設定では多くの作業がシンプルかつ効率的に行われ、フロントエンド応答サーバーとして非常に適しています。

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

以上、nginxとapacheのメリット・デメリットを側面も含めて紹介しましたが、PHPチュートリアルに興味のある友人の参考になれば幸いです。

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