Nginx負荷等化アルゴリズム

1543 ワード

会社のNginx環境は私たちが指を染めることができないので、具体的な配置と使用はすべて運維が把握して、この編は理解編としてNginxの中の負荷均衡アルゴリズムを勉強して、自分の知識面を成長します.
一般的な負荷等化アルゴリズム
1.ポーリング
ポーリングはデフォルトで、各リクエストは時間順に異なるバックエンドサーバに割り当てられます.バックグラウンド・サーバでダウンタイムが発生した場合は、自動的に削除できます.
欠点:信頼性が低く、負荷配分が不均衡である.ピクチャサーバと静的ページサーバクラスタに適しています.
2.加重ポーリング(wight)
ポーリングの確率を指定し、wightとアクセス比率を比例させ、バックグラウンドサーバのパフォーマンスが不均一な場合に使用します.
upstream linuxidc{ 
      server 10.0.0.77 weight=5; 
      server 10.0.0.88 weight=10; 
}

3. ip_hash
各リクエストのipのhash結果に基づいて割り当てられるため、各固定ipは同じバックエンドサーバにアクセスでき、セッションの問題を解決することができる.
upstream favresin{ 
      ip_hash; 
      server 10.0.0.10:8080; 
      server 10.0.0.11:8080; 
}

4.fair(サードパーティ)
バックエンドサーバの対応する時間に従ってリクエストを割り当て、短い時間で優先的に割り当てます.
 upstream favresin{      
      server 10.0.0.10:8080; 
      server 10.0.0.11:8080; 
      fair; 
}

5.url_hash
(サードパーティ)
urlにアクセスしたhash結果に従ってリクエストを割り当て、固定urlごとに同じバックエンドサーバにアクセスします.バックエンドサーバがキャッシュされている場合、効率が高くなります.
 upstream resinserver{ 
      server 10.0.0.10:7777; 
      server 10.0.0.11:8888; 
      hash $request_uri; 
      hash_method crc32; 
}

upstreamパラメータ解析
upstreamは、デバイスごとにステータス値を設定できます.
down:現在のserverが負荷に一時的に関与しないことを示す
Weight:デフォルトは1で、wightが大きいほど負荷の重みが大きくなります.
max_fails:リクエストの失敗を許可する回数のデフォルトは1です.最大回数を超えるとproxy_が返されますnext_upstreamモジュール定義のエラー.
fail_timeout:max_failsこの失敗後、一時停止した時間.
backup:他のすべての非backupマシンがダウンしたり、忙しいときにbackupを要求するマシン.
参考:
Nginx負荷等化のいくつかの方式