nginxの公式サイト: http://nginx.org/
、nginxのと apacheの違い
Nginxは:
1は、軽量で、使用して Cを、同じ書くためにウェブサービスを、より少ないメモリとリソースを取り上げます。
2 、抗同時、 nginxのはするファイルディスクリプタとkqueueの開発モデルとして、処理要求がより非同期非ブロッキング負荷容量である Apacheの非常に高い、と Apacheは遮断タイプです。高度に並行に nginxの高性能、低資源消費を維持するために 、一方のApache で PHP 多大下または遅いフロントエンド圧、それによって現象サービスを拒否する、プロセスの数が急増する傾向があります。
図3は、nginxの静的ファイルハンドル、より静的な処理性能 apacheの3倍以上。
4 、 nginxのの高度なモジュール設計は、準備モジュールは比較的簡単です。
5 、 nginxのの構成が簡単かつ定期的な構成ですが、シンプルなものをたくさん作り、完全な構成変更するために使用することができ -t 全く問題がなく、テスト構成 Apacheの設定の複雑さ 、再起動を、私は間違って行く、それが崩壊する何かに気づきました。
6 、 nginxのサポート負荷分散サーバーとして 7 -layer負荷分散を。
7 、 nginxの自体は、リバースプロキシサーバーですが、また非常に良いメールプロキシサーバとして。
8 、開始を特に受けやすい、とほとんど行うことができます 7 * 24 、数ヶ月を実行すると、再起動する必要はありません場合でも、ソフトウェアのバージョンをアップグレードし、ノンストップの操作をするだけでなく、ノンストップサービスへ
9 、コミュニティの活動家は、すぐに高性能モジュールの様々な生産しました
アパッチ:
1 、アパッチの書き換えより nginxの強力な、書き換え頻度の高いケースの下で、アパッチ
2 、 Apacheの存在に、より基本的な考え方の上にモジュールを見つけることができます
3 、 Apacheのより成熟し、より少ないバグ、 nginxののバグは、比較的より
4 、 Apacheの超安定
5 、 Apacheのための PHPのサポートは比較的単純で、 nginxのは、他のバックエンドと協力する必要があります
6 、 apacheの取り扱いダイナミックな要求が優位性を持っている、 nginxのはへの一般的なダイナミックな要求、この点で無味である Apacheは、やる nginxの静的のためにと逆。
Apacheは、豊富な機能を備えた、成熟した技術とコミュニティ開発と、まだ主流です
概要
両方のコア差ということであるアパッチマルチプロセスモデルを同期され、接続プロセスに対応するが、 nginxのは、プロセスに対応することができる非同期、複数の接続(百万レベル)であります
一般的には、必要なパフォーマンスのWeb サービスでは、使用して nginxのを。ない性能だけ安定している場合、より多くの考慮 Apacheの様々な機能モジュールを有し、前者、例えば実施のSSL 前者より良好にモジュールを、複数の項目を設定することができます。epoll(FreeBSDは上で kqueueの)ネットワーク IOのモデルがある nginxの基礎となる理由の高い処理性能、すべてではないケースがあるのepoll 自体はいくつかのファイルのほんの一握りに静的なサービスを提供する場合、勝利アパッチさん選択するよりも、おそらく多くのモデルを epollをより高いパフォーマンス。もちろん、これは唯一のネットワークに応じている IOのまだ測定の繰り返しを必要とする実際のアプリケーションのための仮説モデルの原則。
より一般的な解決策は、フロントで nginxの抗同時、バックエンドの Apacheのクラスタ、および一緒に良くなります。
第二に、クラスタ
簡潔には、クラスタが独立したコンピュータのグループであり、より大きなコンピュータ・システム・サービスからなる高速通信ネットワークは、各クラスタ・ノードは、それぞれ独立して、サービスサーバの実行されています。ユーザ、システムリソースとデータをアプリケーションサーバとの間の相乗効果を提供するために、シングルモードシステムで管理され、互いに通信することができます。ユーザは、クライアントクラスタシステム、ユーザーへのクラスタ単一のサーバが、実際にユーザが要求したが、クラスタ化されたサーバーのセットである印象を要求します。
高性能、価格の有効性、スケーラビリティ、高可用性、透明性、管理性とプログラマビリティ:クラスタには、いくつかの機能が含まれています。
1 、負荷分散クラスタ
一般的な負荷分散アーキテクチャでは、負荷分散クラスタ、その上の高可用性クラスタリング、高性能コンピューティング・クラスタとを含んでいます。ここでは、負荷分散クラスタに焦点を当てて、クラスター・アプローチは、他については説明しません。
より実用的な、より費用対効果の高いシステムアーキテクチャソリューションを企業に提供するために、負荷分散クラスタ。クラスタは、多くの顧客ができるだけ平均処理コンピュータクラスタを負荷圧力を共有するためのアクセス要求を集中読み込むことができます。お客様のアクセス要求の負荷分散は、典型的には、アプリケーションの処理負荷やネットワークトラフィックの負荷分散を含んでいます。このようなシステムは、ユーザ・モードの多数に提供されるアプリケーションおよびサービスの同じセットを使用するのに非常に適している、各ノードは、アクセス要求の一部の負荷圧力を想定することができ、アクセス要求と動的割り当ては、負荷分散のために、ノード間で実現することができます。
クライアントの要求を分散するために、通常、1つまたは複数のフロントエンドロードバランサによって、操作を分散クラスタの負荷が高いパフォーマンスと高可用性を実現するために、バックエンドサーバのセット、システム全体にアクセスできます。一般的な高可用性クラスタリングと同様の技術を使用して負荷分散クラスタ、または同僚は、高可用性と負荷分散の特性を有しています。ロードバランシングの役割:で使用されるビジネスの継続、維持するためのユーザー・アクセスおよびデータトラフィックの共有ウェブライブラリと他のサーバーからのサービスおよびデータベースサービスを。
2 、 nginxののロードバランシングクラスタの説明
一般的なオープンソースのクラスタリングソフトウェアのインターネット企業: nginxの、 LVS 、 Haproxy 、 keepalivedの他のハードウェア F5 、 NetScalerのようにして。
厳密に言えば、 nginxのは同じようです nginxのプロキシはパフォーマンスリバースプロキシ機能の効果は、それはとも呼ばれ、ロードバランシングクラスタの効果であるため、プロキシの使用を逆 nginxのの負荷分散。リバースプロキシ負荷分散および負荷分散の差は、通常、前記送信される(データパケットが書き換えてもよい)、パケット転送要求であるのDR モード機能が受信、視点の下のサーバノードの負荷分散とは区別されますロードバランサからの要求や、実際のユーザクライアントへ。リバースプロキシは、ユーザの要求にリバースプロキシのアクセスが受信され、ユーザエージェントは、バッククライアントユーザに最終的にはデータをノード・サーバ・リクエスト・ブローカーの下で再起動、およびます。サーバ・ノードの観点から、クライアントユーザーにアクセスするためのノードサーバは、リバースプロキシサーバではなく、ユーザーにアクセスするために、実際のWebサイトです。
nginxのロード・バランシングモジュールは、主に2つ、持っている ngx_http_proxy_module 、 ngx_http_upstream_moduleを。時間はそれにコンパイルこれら二つのモジュールをコンパイルするために必要。