nginxのは、今一番ホットなWebサーバーとリバースプロキシ、ないものでなければなりません。
彼女は、ロシアで生まれ、特に高い同時実行で、高性能なWebサーバでは、Apacheに比べて、優れた性能を持っていました。その負荷分散に加えて、それを使用して、他のどのような彼女は、のは、次のを見てみましょう。
帯電防止剤
静的ファイルを扱うのが得意nginxのは、非常に良い絵、ファイルサーバです。nginxの上のすべての静的リソースを配置するには、静的および動的な分離、より良いパフォーマンスを適用することができます。
第二に、ロード・バランシング
nginxのは、要求は、負荷の効果を達成するために、一定の戦略に応じて別のサーバーに転送され、単一のサーバノードに障害が発生した回避、リバースプロキシ、ロード・バランシング・サービスを介して達成することができます。一般的な負荷分散戦略、
1、ポーリング
要求が順次交互接続の実際の数サーバと現在のシステム負荷に関係なく、バックエンド・サーバ、それの後端バランス治療するために、各サーバに割り当て。
2、WRR
別のバックエンドサーバーがマシン構成をロードして、現在のシステムが同じではありません、彼らは圧力下にある同じではありません。知名度の高い、低負荷マシン構成高い重量、より多くの処理をさせてください;低、高負荷のマシンを配置し、より低い重みを割り当てるために、システムの負荷を軽減、重み付けラウンドロビンウェルその重みに応じて後端に割り当てられ、この問題と要求の順序に対応しています。
3、ip_hash(ソースアドレスハッシュ)
クライアントのIPアドレスは、この値を使用して、ハッシュ関数によって得られた値を計算し、サーバリストの剰余演算のサイズを取得し、その結果は、クライアントがサーバーのシーケンス番号にアクセスすることを望んでいるということです。送信元アドレスのハッシュ負荷分散を使用して、クライアントの同じIPアドレスと、同じバックエンドサーバリスト、それにアクセスするには、それは同じバックエンドサーバにマッピングされるたびに。
4、ランダム
ランダムにサーバがアクセスされたバックエンドサーバを選択された値のリストのサイズに応じてランダムアルゴリズムシステム。
5、least_conn(接続方法の最小数)
バックエンドサーバーの異なる構成は、高速または低速の要求を処理し、コネクタ接続方式の最小数の現在のバックエンドサーバによれば、現在のバックログが動的に現在の要求を処理するために接続の最小数のサーバを選択し、前記できるだけ多くのバックエンドサービスの効率を向上させるために、我々は、各サーバーへの合理的な転換のために責任を負うことになります。
第三に、電流制限
nginxの制限モジュールは非常に実用性の高い同時実行のシナリオで実装リーキーバケットアルゴリズムに基づいています。
図1に示すように、構成パラメータ
1)limit_req_zoneは$ binary_remote_addrはバイナリ形式でクライアントのIPアドレスを格納する意味は、httpブロックで定義されました。
2)共有メモリ領域は、IPゾーンの状態とURLへのアクセス頻度を定義しました。ゾーン=キーワードは、領域サイズに続く領域の名前、ならびに結腸を識別する。16000ステータス1メガバイトのIPアドレスに関する情報、従って試料は領域160の000のIPアドレスを格納することができます。
3)レート要求の最大速度を規定します。例では、速度は毎秒100個の要求を超えることはできません。
図2に示すように、電流が設け制限が
バーストキューのサイズ、単一の要求間のNODELAY時間制限なし。
第四に、キャッシュ
1、有効期限が切れると、ブラウザのキャッシュ、キャッシュ静的リソース。
2、キャッシュプロキシ層
第五に、黒と白のリスト
図1に示すように、制限された流れホワイトリスト
2、ブラックリスト
さて、上記などnginxのいくつかの共通の特徴、静的分離、負荷分散、電流制限、キャッシュ、黒と白のリスト、である、あなたはまだ理解できますか?
最後に、[戦闘] nginxのドキュメントを共有するために、この記事を転送し、小さなシリーズに続く、その後、789 337 293へのアクセスを解放する(Javaはピットロードを記入)グループに参加!