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

Apacheとngnixの比較

WBOY
WBOYオリジナル
2016-08-08 09:21:53978ブラウズ

1. Apache および ngnix での PHP 動作モード。

1) Apache には、CGI モード、モジュラー モード、および FastCGI モードの 3 つの動作モードがあります。

CGI モードは、 比較的原始的な方法です リクエストを受信するたびに、php.exe の呼び出し、php.ini の解析、DLL のロードなどが行われ、当然ながら時間がかかります。

モジュラーモードでは、Apache はデフォルトでこの方法で php を実行し、php スクリプト全体を処理するときに php.exe プログラムを呼び出す必要はありません。プロセスは比較的安定した Apache プロセスのみで処理されます。

FastCGI モードは、CGI モードのアップグレード版です。 は、接続プールと同様の技術機能を実装し、バックグラウンドへの接続を維持し、リクエストが来たときに使用でき、準備ができています。毎回呼び出す必要があるオリジナルの CGI モードとは異なり、次のリクエストは接続されます

ブロッキングタイプでは、同じプロセスを使用して複数のリクエストを処理できるNginxとは異なり、リクエストごとにプロセスが作成されます。

2)、CGI は Nginx サーバーではサポートされておらず、デフォルトでは FastCGI モードで実行されます、そして 非同期でノンブロッキングであるため、高い同時実行性をサポートしますシナリオ。 2. Apache に対する nginx の利点

:

1. 軽量、Web サービスと同じ、Apache より優れています 占有メモリとリソースが少ない

2. 非同時実行性、Apache がブロックしている間 (同期マルチプロセス)、nginx はリクエストを非同期かつ非ブロック的に処理します

、nginx は高い同時実行性の下でも低リソースを維持できます 低消費量と高パフォーマンス 3. 高度にモジュール化された設計で、モジュールの作成が比較的簡単です4. コミュニティが活発で、さまざまな高性能モジュールが迅速に作成されます nginx に対する Apache の利点:

1. nginx のリライトよりも強力なリライト 2. 動的ページの処理パフォーマンスは nginx inx より優れています 3. モジュールが非常に多く、基本的に考えられるものはすべて見つかります
4. nginx には比較的多くのバグがあります

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

、より多くの同時実行をサポート接続の反映率が高くなります効率、これ このため、Nginx は Web ホスティング プロバイダーの間で特に人気があります。同時接続数が多い場合、Nginx は Apache サーバーに代わる良い選択肢です。Nginx は、米国の仮想ホスト ビジネス オーナーによく選ばれるソフトウェア プラットフォームの 1 つであり、最大 50,000 の同時接続の応答をサポートできます。ありがとうございます。Nginx は開発モデルとして epoll と kqueue を選択してくれました
負荷分散サーバーとしての Nginx: Nginx は内部で Rails と PHP プログラムを直接サポートして外部サービスを提供するだけでなく、HTTP プロキシ サーバーとして外部サービスもサポートします。
Nginx は C

で書かれており、システム リソースのオーバーヘッドと CPU 使用効率は Perlbal よりもはるかに優れています。 メール プロキシ サーバーとしても、Nginx は非常に優れたメール プロキシ サーバーです。この製品を開発した最初の目的 まず、メール プロキシ サーバーとして、Last.fm は成功した素晴らしい経験を説明しています Nginx は、インストールが非常に簡単で、非常に簡潔な設定ファイルを備えたサーバーです (サポートすることもできます)。 Perl 構文)、バグがほとんどありません: Nginx は特に起動が簡単で、数か月間実行しても再起動することなくほぼ 24 時間実行できます。また、サービスを中断することなくソフトウェア バージョンをアップグレードすることもできます。

5. Nginxの構成はシンプル、Apacheは複雑 Nginxの静的処理パフォーマンスはApacheの3倍以上高い ApacheのPHPサポートは比較的シンプル、Nginxは連携する必要がある他のバックエンドではを使用してくださいApacheにはNginxより多くのコンポーネントがあります今ではNginxがWebサーバーの第一の選択肢です


6 つの主な違いは、apache は同期マルチプロセスモデル、1 つの接続が 1 つのプロセスに対応することですnginx は非同期 、複数の接続 (10,00) 0レベル) 1つのプロセスに対応できます


7. nginx は静的ファイルを適切に処理し、メモリ消費量が少なくなります。しかし、多くの豊富な機能を備えた Apache が依然として現在の主流であることに疑いの余地はありません。したがって、nginx がニーズに適していると判断される場合には、もちろん、Apache がそれに匹敵する必要があります。 nginx を使用する方が経済的です

apache には固有の欠点があります マルチコア処理負荷をサポートする欠点は、nginx をフロントエンドとして使用し、apache をバックエンドとして使用することをお勧めします。大規模な Web サイトでは、nginx のクラスター機能を使用することをお勧めします。LNMPA の設定方法については、http://www.freehao123.com/lnmpa/

を参照してください。 8. 個人的な過去の使用状況から判断すると、nginx の負荷容量は Apache の負荷容量よりもはるかに高いです。最新のサーバーもnginxを使用しています。さらに、nginx の構成を変更した後、構成が正しいかどうかをテストすることはできません。 Apache を再起動すると、構成が間違っていることがわかり、クラッシュする可能性があるため、多くのクラスター サイト、 アンチコンカレンシーがあることがわかりました。 、バックエンド Apache クラスター、 連携も良好です。

9. nginxは動的リクエストの処理には役に立ちません 一般に、動的リクエストはApacheによって実行される必要があり、nginxは静的リクエストとリバースにのみ適しています。 10. 私の個人的な経験から言えば、nginx は非常に優れたロードパフォーマンスを備えた非常に優れたフロントエンドサーバーです。Laoben で nginx を開き、Webbench を使用して 10,000 の静的ファイルリクエストをシミュレートするのは簡単です。 Apache は php などの言語のサポートが充実しています。 さらに、Apache は強力なサポート ネットワークを持っており、nginx よりも長く開発されています 11. Nginx が Apache より優れている理由は主に 2 つです。 : 1. Nginx 自体はリバース プロキシ サーバーです。2. Nginx は 7 層の負荷分散をサポートしています。 Apache はより高い同時実行性をサポートしていますが、NetCraft の統計によると、2011 年 4 月時点でも Apache が 62.71% を占めているのに対し、Nginx は 7.35% でした。そのため、一般的には、その成熟したテクノロジーと開発により、Aapche が依然としてほとんどの企業にとって第一の選択肢となっています。コミュニティはすでに非常に優れたパフォーマンスを発揮しています。 12. Web サーバーのニーズによって選択が決まります。 大きい 静的ファイルの処理、PHP-CGIのサポート、リバースプロキシ機能、フロントエンドキャッシュ、接続の維持など、場合によってはnginxの方がAPACHEよりも優れている場合があります。存在する Apache+PHP (プリフォーク) モードでは、PHP の処理が遅い場合、またはフロントエンドの負荷が高い場合、Apache プロセスの数が急増し、サービス拒否が発生する可能性があります。 13. nginx lua モジュールをご覧ください: https://github.com/chaoslaw...Apache には nginx よりも多くのモジュールがあり、Apache で直接実装できるモジュールが最も多いです。人気、なぜ?ほとんどの人は、nginx にアップデートしたり、新しいことを学ぶのが面倒です 14. nginx については、私はそれが気に入っています 設定ファイルは非常に簡潔に書かれており、通常の設定により多くのことが簡単になり、操作効率が高く、消費時間が少なくなります強力な機能を備えており、フロントエンド応答サーバーに非常に適しています。 Apache は、再書き込みが頻繁に行われる場合、同時実行性が高く、CPU メモリの使用量が少ないという利点があります。 Apache が最良の選択です
著作権表示: この記事はブロガーによるオリジナルの記事であり、ブロガーの許可なく複製することはできません。
以上、Apache と ngnix の比較を内容も含めて紹介しましたので、PHP チュートリアルに興味のある方の参考になれば幸いです。

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