lvs、nginx、haproxy は、最も一般的な 3 つの高可用性負荷分散ソフトウェアです。 lvs と haproxy は現在の会社のライブネットワーク環境では使用されていないため、以前は簡単に理解して構築していましたが、今ではほとんど忘れられています。nginx のロードバランシングについては、会社で使用されていますが、設定する必要があるだけです。一度 ファイルはすべてctrl+c、ctrl+vであり、転送に関する理論的なことはほとんど忘れていました。今漠然と頭に浮かぶ単語は、upstream、dr、ip_hash だけです。ここでは3つの転送方法をまとめていきます。
LVS は、Zhang Wensong 博士によって作成された第 4 層で動作する可能性の高いソフトウェアです。後の 2 つとは異なり、7 層の転送はサポートしていませんが、そのシンプルさゆえに最も安定しています。 IP ロード バランシング テクノロジーには、VS/NAT (ネットワーク アドレス変換による仮想サーバー)、VS/TUN (IP トンネリングによる仮想サーバー)、および VS/DR (ダイレクト ルーティング) の 3 つがあります。これら 3 つの具体的な比較を表に示します。以下
nginx には、ポーリング、ウェイト (重み)、ip_hash、fair、url_hash の 5 つのロード アルゴリズム モードがあります。 1 つずつ説明します:
①ラウンドロビン、つまりシンプルです。ポーリング、これは基本的に負荷分散の機能です。②static-rrは、重みに基づくことを意味し、nginxの重み付けアルゴリズムに似ています。③leastconnは、最も接続されていない人が最初に処理されることを意味し、nginxのフェアに少し似ています。ただし、応答時間に基づいています。④source、つまり、Nginx の IP_hash メカニズムと同様に、セッションの問題を解決する方法として使用することをお勧めします。注意; ⑤ri、これは nginx の url_hash と同様に、リクエストの URI に基づくことを意味します; ⑥rl_param、これは、リクエストされた URL パラメータに応じた URL パラメータ名が必要であることを意味します ⑦hdr(name)これは、各 HTTP リクエストが HTTP リクエスト ヘッダーに基づいてロックされることを意味します。⑧rdp-cookie(name) は、cookie(name) に基づいて各 TCP リクエストをロックおよびハッシュすることを意味します。
特定の実装ネットワーク アプリケーションは、オブジェクトの実際の状況に基づいて最適なロード方法を選択できます。 3 つの中では、lvs が最も安定性が高く、設定の容易性が最も低く、nginx はドメイン名とディレクトリ構造の定期的な照合において最も強力ですが、同時にネットワークへの依存度は低くなりますが、パフォーマンスは lvs と比べてわずかに劣ります。 haproxy は、特にセッション保持の観点から、IP 識別 (ソース)、クッキー識別、およびセッション識別という 3 つのアルゴリズムをサポートしています。また、このソフトウェアは mysql でもよく使用されます。 HA ソリューション。
上記では、lvs、nginx、および haproxy の転送モードの概要を、関連する内容も含めて紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。