負荷分散を理解するには、まずフォワード プロキシとリバース プロキシを理解する必要があります。 注記:
負荷分散とは サーバーが単位時間あたりに受ける訪問数が増えるほど、サーバーにかかる負荷は大きくなります。負荷がサーバーの許容量を超えると、サーバーはクラッシュします。サーバーのクラッシュを回避し、ユーザーに優れたエクスペリエンスを提供するために、負荷分散を通じてサーバーの負荷を分散します。 多数のサーバーを構築してサーバー クラスターを形成できます。ユーザーが Web サイトにアクセスすると、まず中間サーバーにアクセスし、この中間サーバーにサーバー クラスター内の負荷の少ないサーバーを選択させ、そのサーバーにアクセス要求を転送します。このようにして、ユーザーがアクセスするたびに、サーバー クラスター内の各サーバーの負荷が均衡化され、サーバーの負荷が分散され、サーバーのクラッシュが回避されます。 負荷分散はリバース プロキシの原理を使用して実現されます。 負荷分散の一般的な方法 1. ポーリング(デフォルト) 各リクエストは時系列順に 1 つずつ異なるバックエンド サーバーに割り当てられます。バックエンド サーバーがダウンしている場合は、自動的に削除されます。 アップストリームバックサーバー{ サーバー 192.168.0.14; サーバー 192.168.0.15; } 2. 重量 ポーリング確率を指定します。重みはアクセス率に比例し、バックエンド サーバーのパフォーマンスが不均一な場合に使用されます。 アップストリームバックサーバー{ サーバー 192.168.0.14 重み=3; サーバー 192.168.0.15 重み=7; } 重みが高ければ高いほど、訪問される可能性が高くなります。上記の例では、それぞれ 30% と 70% です。 3. 上記の方法には問題があります。負荷分散システムでは、ユーザーがサーバーにログインした場合、ユーザーが 2 回目のリクエストを行うと、負荷分散システムであるため、各リクエストはクラスター内のサーバーの 1 つに再配置されます。サーバーにログインしたユーザーが別のサーバーに再配置されると、ログイン情報が失われるため、明らかに不適切です。 この問題を解決するには、ip_hash 命令を使用できます。クライアントがすでにサーバーにアクセスしている場合、ユーザーが再度アクセスすると、リクエストはハッシュ アルゴリズムを通じて自動的にサーバーに配置されます。 各リクエストはアクセス IP のハッシュ結果に従って割り当てられるため、各訪問者は固定のバックエンド サーバーにアクセスし、セッションの問題を解決できます。 アップストリームバックサーバー{ ip_ハッシュ; サーバー 192.168.0.14:88; サーバー 192.168.0.15:80; } 4. 公正(第三者) リクエストはバックエンド サーバーの応答時間に基づいて分散され、応答時間が短いリクエストが優先されます。 アップストリームバックサーバー{ サーバー server1; サーバー server2; 公平; } 5. url_hash(サードパーティ) アクセスされた URL のハッシュ結果に応じてリクエストが分散され、各 URL が同じバックエンド サーバーに送られます。これは、バックエンド サーバーがキャッシュされている場合に、より効果的です。 アップストリームバックサーバー{ サーバー squid1:3128; サーバー squid2:3128; $request_uri をハッシュします。 ハッシュメソッドCRC32; }123456 各デバイスのステータスは次のように設定されます。
設定例: #ユーザーnobody; ワーカープロセス 4; イベント { # 同時ワーカー接続の最大数 1024; } http{ # 選択されるサーバのリスト アップストリーム myproject{ # ip_hash ディレクティブは同じユーザーを同じサーバーに誘導します。 ip_ハッシュ; サーバー 125.219.42.4 fail_timeout=60s; サーバー 172.31.2.183; } サーバ{ # リスニングポート listen 80; # ルートディレクトリの場所 / { # どのサーバーを選択するか list proxy_pass http://myproject; } } } 要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。 以下もご興味があるかもしれません:
|
>>: MySQL ロック(テーブルロック、行ロック、共有ロック、排他ロック、ギャップロック)の詳細な説明
クエリ書き換えプラグインMySQL 5.7.6 以降、MySQL Server は、サーバーが実行す...
背景開発中、特定の状況でビジネス ロジックをバッチ処理するためのスクリプトが必要になる場合があります...
MySQL 8.0.13 にはデフォルトでデータ フォルダがあります。このフォルダを削除する必要があ...
現在、ほとんどの CPU は浮動小数点ユニット (FPU) をサポートしています。FPU は、プロセ...
Web デザインでは、Web サイトに表示されるデータの構造とコンテンツをユーザーが明確に理解できる...
フォームのコードは図の通りです。スタイルシートがまだ追加されていないため、フォームが整列されておらず...
NProgress は、ページがジャンプしたときにブラウザの上部に表示される進行状況バーです。公式ウ...
リクエストロジックフロントエンド --> https経由でnginxをリクエストnginx -...
<br />関連記事: innerHTML HTML DOM insertRow() メ...
目次序文1. イベントとクリップボードを貼り付ける2. クリップボード内のコンテンツ形式3. HTM...
要件: ページに画像を表示する必要がありますが、さまざまな理由により、画像はサーバー 2 にあります...
1. 背景1.1 問題点最近の製品テスト レポートでは、PKI ベースの認証方法の使用が推奨されて...
目次Dockerとは展開する1. イメージをプルする2. 画像を表示する3. コンテナを実行する4....
Web プロジェクトを作成しているときに、紹介ビデオが別にある紹介ページに遭遇しました。この短いビデ...
目次1. 数学関数2. 文字列関数3. 日付関数4. 暗号化機能主な MySQL 関数は次のように紹...