1、nginxの紹介
nginxの(X-エンジン)は、高性能なHTTPサーバおよびリバースプロキシサービスでも、IMAP / POP3 / SMTPサービスです。理由は、その安定性、豊富な機能セット、簡単な設定ファイルと低システムリソースのために知られています。
nginxのは、軽量なWebサーバ/リバースプロキシサーバーと電子メール(IMAP / POP3)プロキシサーバであり、BSDのような合意の下でリリース。これは、少ないメモリ、高い並列性を占めています、同時nginxの事実を行う能力は、Webサーバーのパフォーマンスの同じタイプが良いです
高い同時接続の場合は、NginxはApacheサーバは良い代替品です。
創設者イゴールSaisuoyefu
2.なぜnginxの
nginxのは非常に優れた特性の多くを持っている、高性能なWebサーバーとリバースプロキシです。
リファレンスサーバーの構成スタンドアロン環境。7000 + -8000についての同時接続。2万+クラスタモード
Webサーバとして:Apacheのに比べ、nginxのは、特にこの時点で、高い効率性を反映し、より多くの同時接続をサポートするために、nginxのウェブホスティングプロバイダの歓迎をより少ないリソースを使用します。応答では50,000の同時接続をサポートします。
負荷分散サーバーとして:nginxのは、直接、外国のサービスでHTTPプロキシサーバとしてサポートすることができ、内部的にRailsとPHPをサポートしています。nginxのにかかわらず、システムまたはCPUリソース消費効率のPerlbalよりもはるかに優れている、Cで書かれています。
メールプロキシサーバとして:nginxのは非常に良い、メール、プロキシサーバー(この製品の最も初期の開発の目的の1つのメールプロキシサーバとしてある)、Last.fmは成功し、素晴らしい経験を記述もあります。
nginxのインストールは非常に簡単で、非常に簡単な設定ファイル(もperlの構文をサポートしています)、バグ非常に少ないサーバーである:数ヶ月を再度実行する必要はありません場合でも、nginxのが始まりで、特に脆弱であり、約7 * 24中断のない操作を行うことができます開始します。また、中断のないサービスの場合、ソフトウェアのバージョンをアップグレードすることができます。
3、IO多重化
第一の方法は、最も伝統的なマルチプロセスの同時実行モデル(新しいプロセス管理を割り当てられる各新しいI / Oストリームに来る。)であり、
第2の方法はトラックを記録することにより、I / O多重化(シングルスレッドでありますI / Oは、複数のストリームを管理するために、各I / Oストリーム(私達の靴下)の状態、および。)
I / Oは、多重手段の多重化は、実際には同じ状態で単一のスレッドによって記録された各ソックス(I / Oストリーム)を追跡あります
I / Oの複数の管理はストリーム。なお、本発明は、できるだけ多くのサーバの処理能力を向上させることである理由です。(処理能力)
DIPを介して同時に複数のIを送信するように切り替え、同じスレッドに/ Oストリーム。(読み書き)
* 2、要求が到着し、利用のepollプロセスがどのようなものですへの要求を受け、nginxの?
* Ngnixは誰にデータが割り当てられます、そしてコール相として、ダイヤルスイッチのように、その後に来る彼らはそれを監視する必要がありますファイルディスクリプタ、および接続の多くを持っています
コードは、扱われるべきです。
- epollを。
ファイルディスクリプタは、I / Oを実現最新の多重化されたと言うと、ほとんどの問題の世論調査のepollの修正を選択し、のようなことができます。
•のepollスレッドセーフ。
•、あなたがアップ行く必要はありませんこれは、特定の靴下データをあなたに言うのepoll。
3、非同期、ノンブロッキング
マスター・プロセス、2つの作業プロセス
各リクエストで来る、に対処するためのワーカープロセスが存在します。しかし、ないどの程度まで全体のプロセスは、それに対処するには?プロセス
ここで、障害物は、転送サーバ上流(後方)への要求として、発生し、要求待ちに戻ることができます。だから、このプロセス
作業員は、常に彼は後にイベントを登録するリクエストを送信するだろう、待っていることはありません。「上流が返された場合、私に知らせて、
私はその後、乾燥を行ってきました。「彼は休息に行ってきましたので。これは、非同期である。別のリクエストが来た場合は、この時点では、彼はすぐにこのキーを押すことができます
アプローチ。これは、非ブロッキングIOと多重化です。上流のサーバは、それがこのイベントをトリガします返されると、作業員は次のようになります
引き継いだ、この要求は、その後下がるだろう。これは、非同期コールバックです。