ロード バランシング
nginx はリバース プロキシ サーバーの役割を果たしますが、リクエストを分散するためにどのようなルールが使用されますか?どのような負荷分散スケジューリング アルゴリズムが搭載されていますか?
#ここで言及されている、クライアントによって送信され、nginx リバース プロキシ サーバーによって受信されるリクエストの数は、負荷と呼ばれるものです。
リクエストの数は、特定のルール (バランス ルール) に従って処理するためにさまざまなサーバーに分散されます。
つまり、サーバーが受信したリクエストは、次の規則に従って分散されます。ルール このプロセスは負荷分散と呼ばれます。
実際のプロジェクト運用プロセスでは、ハードウェア負荷分散とソフトウェア負荷分散の2種類の負荷分散が行われますが、ハードウェア負荷分散はF5負荷分散などハード負荷とも呼ばれ、比較的負荷分散が容易です。高価です。ただし、データの安定性とセキュリティは十分に保証されています。ハード ロード操作を選択するのはチャイナ モバイルやチャイナ ユニコムなどの企業だけです。コスト上の理由から、より多くの企業がソフトウェア ロード バランシングを選択するでしょう。ソフトウェア ロード バランシングホスト ハードウェアと組み合わせた既存のテクノロジーを使用して実装されたメッセージ キュー分散メカニズムです。
#Nginx でサポートされる負荷分散スケジューリング アルゴリズムは次のとおりです: (重要なポイント)ウェイトポーリング (デフォルト):
使用中に特定のバックエンドサーバーが使用されていた場合でも、受信したリクエストは順番に異なるバックエンドサーバーに割り当てられます。がダウンすると、Nginx はサーバーをキューから自動的に削除し、リクエストの受け入れにはまったく影響しません。このように、異なるバックエンド サーバーに重み値 (重み) を設定して、異なるサーバーへのリクエストの割り当て率を調整できます。重みデータが大きいほど、リクエストに割り当てられる確率が高くなります。重み値, 主に、実際の作業環境におけるさまざまなバックエンド サーバーのハードウェア構成に合わせて調整されています。
ip_hash:各リクエストは、開始クライアントの IP のハッシュ結果に従って照合されます。このアルゴリズムでは、固定 IP アドレスを持つクライアントは常に、バックエンドサーバーは、クラスター展開環境におけるセッション共有の問題もある程度解決します。
公平:スケジューリング アルゴリズムのインテリジェントな調整、バックエンド サーバーのリクエスト処理から応答までの時間に基づいた動的でバランスのとれた分散、サーバー短い応答時間と高い処理効率 リクエストが割り当てられる可能性が高く、応答時間が長く処理効率が低いサーバーには割り当てられるリクエストが少なくなります。最初の 2 つの利点を組み合わせたスケジューリング アルゴリズムです。ただし、Nginx はデフォルトではフェア アルゴリズムをサポートしていないため、このスケジューリング アルゴリズムを使用したい場合は、upstream_fair モジュールをインストールしてください。
url_hash:リクエストは、アクセスされた URL のハッシュ結果に従って割り当てられます。各リクエストの URL はバックエンドの固定サーバーを指します。 Nginx の静的として使用できます。サーバーの場合のキャッシュ効率が向上します。なお、Nginx はデフォルトではこのスケジューリング アルゴリズムをサポートしていないため、使用したい場合は Nginx ハッシュ ソフトウェア パッケージをインストールする必要があります。
Nginx 関連の技術記事の詳細については、
Nginx の使用法チュートリアル以上がnginx の負荷分散とは何を意味しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。