ホームページ >運用・保守 >Nginx >nginx の負荷分散アルゴリズムとは何ですか?

nginx の負荷分散アルゴリズムとは何ですか?

(*-*)浩
(*-*)浩オリジナル
2019-11-02 09:41:426420ブラウズ

nginx の負荷分散アルゴリズムとは何ですか?

Nginx でサポートされる負荷分散スケジューリング アルゴリズム

1.round robin (デフォルト) (推奨学習: nginx チュートリアル)

リクエストを各バックグラウンド サーバーに順番に分散するポーリング方式が、デフォルトの負荷分散方式です。

バックグラウンド マシンのパフォーマンスが安定している状況に適用されます。

ハングしたマシンはサービス リストから自動的に削除できます。

2.weight

重みに従ってリクエストをさまざまなマシンに分散し、ポーリング確率を指定します。重みはアクセス率に比例し、バックエンドサーバーのパフォーマンスが不均一な状況に使用されます。 。

例:

upstream bakend {    
server 192.168.0.14 weight=10;    
server 192.168.0.15 weight=10;    
}

3. IP_hash

リクエスタの IP のハッシュ値に基づいてバックエンド サーバーにリクエストを送信します。同じ IP からのものであることを確認してください。リクエストは固定マシンに送信されるため、セッションの問題は解決できます。

例:

upstream bakend {    
ip_hash;    
server 192.168.0.14:88;    
server 192.168.0.15:80;    
}

4.url_hash (サードパーティ)

リクエストされた URL のハッシュ値に従って、リクエストを異なるマシンに分割します。 . バックグラウンドサーバーをキャッシュすると効率的です。

例:

ハッシュ ステートメントをアップストリームに追加します。重みなどの他のパラメータはサーバー ステートメントに記述できません。Hash_method は使用されるハッシュ アルゴリズムです。

upstream backend {    
server squid1:3128;    
server squid2:3128;    
hash $request_uri;    
hash_method crc32;    
}

ヒント:

アップストリーム ベイクエンド{#負荷分散デバイスの IP とデバイス ステータスを定義する

ip_hash;    
server 127.0.0.1:9090 down;    
server 127.0.0.1:8080 weight=2;    
server 127.0.0.1:6060;    
server 127.0.0.1:7070 backup; 
}

負荷を使用する必要があるサーバーに追加するバランシング

proxy_pass http://bakend/;

各デバイスのステータスは次のように設定されます:

1.down は、前のサーバーが一時的に負荷に参加しないことを意味します

2.weight デフォルトは 1 です。weight が大きいほど、負荷の重量も大きくなります。

3.max_fails: 許可されるリクエスト失敗の数はデフォルトで 1 です。最大数を超えると、proxy_next_upstream モジュールによって定義されたエラーが返されます。

4.fail_timeout: 一時停止max_fails 回の失敗後の時間。

5.backup: 他のすべての非バックアップ マシンがダウンしているかビジー状態の場合、バックアップ マシンを要求します。したがって、このマシンの圧力は最も少なくなります。

nginx は、未使用のサーバーで使用するために、負荷分散の複数のグループを同時にセットアップすることをサポートしています。

client_body_in_file_only オンに設定すると、クライアント投稿からのデータをデバッグ用にファイルに記録できます

client_body_temp_path 記録ファイルのディレクトリを設定して、最大 3 レベルのディレクトリを設定します

location URL と一致します。リダイレクトまたは新しいプロキシ ロード バランシングを実行できます。

5. 公平 (サードパーティ)

バックグラウンドに基づいてリクエストと応答を分散します。応答時間 配布時間が短いほど、より多くのリクエストが発生します。

例:

upstream backend {    
server server1;    
server server2;    
fair;    
}

以上がnginx の負荷分散アルゴリズムとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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