この記事は主に、Nginx 7 層負荷分散のいくつかのスケジューリング アルゴリズムを紹介します。この記事のサンプル コードは非常に詳細で、皆さんの学習や仕事に一定の参考値があります。困っている友人は参考にしてください。 Nginx は軽量で高性能な Web サーバーであり、優れたロード バランサーおよびリバース プロキシ サーバーでもあります。強力な定期マッチングルール、動的および静的分離、URL 書き換え機能、簡単なインストールと構成、ネットワークの安定性への依存度が非常に低いなどのサポートがあるため、7 層ロード バランシングとしてよく使用されます。ハードウェアが悪くなければ、通常は数万の同時接続を安定してサポートできます。ハードウェアのパフォーマンスが十分に良く、システムカーネルパラメータと Nginx 構成が最適化されている場合は、100,000 を超える同時接続に達することもできます。 以下は、7層ロードバランシングとしてのNginxでよく使用されるスケジューリングアルゴリズムと適用可能なビジネスシナリオです。 1. ポーリング(デフォルトのスケジューリングアルゴリズム) 機能: 各リクエストは異なるバックエンド サーバーに割り当てられ、時系列順に処理されます。 アップストリームバックエンドサーバー{ サーバー 192.168.0.14:80 max_fails=2 fail_timeout=10s; サーバー 192.168.0.15:80 max_fails=2 fail_timeout=10s; } 2. 加重ラウンドロビン 機能: ポーリング確率を指定し、重み値はアクセス比率に比例し、ユーザー要求は重み比率に従って割り当てられます。 アップストリームバックエンドサーバー{ サーバー 192.168.0.14:80 重み=5 max_fails=2 fail_timeout=10s; サーバー 192.168.0.15:80 重み=10 max_fails=2 fail_timeout=10s; } 3. ip_ハッシュ 機能: 各リクエストはアクセス IP のハッシュ結果に従って割り当てられるため、各訪問者は固定のバックエンド サーバーにアクセスし、セッション保持の問題を解決できます。 アップストリームバックエンドサーバー{ ip_ハッシュ; サーバー 192.168.0.14:80 max_fails=2 fail_timeout=10s; サーバー 192.168.0.15:80 max_fails=2 fail_timeout=10s; } 4. 最小接続数 least_conn 機能: nginx リバース プロキシとバックエンド サーバー間の接続数に応じて、接続数が最も少ないものが最初に割り当てられます。 適用可能なビジネス シナリオ: クライアントとバックエンド サーバー間の長時間の接続を維持する必要があるビジネスに適用できます。 アップストリームバックエンドサーバー{ 最小接続数; サーバー 192.168.0.14:80 max_fails=2 fail_timeout=10s; サーバー 192.168.0.15:80 max_fails=2 fail_timeout=10s; } 5. fair (サードパーティモジュール ngx_http_upstream_fair_module をコンパイルしてインストールする必要があります) 機能: リクエストはバックエンド サーバーの応答時間に応じて分散され、応答時間が短いリクエストが優先されます。 アップストリームバックエンドサーバー{ 公平; サーバー 192.168.0.14:80 max_fails=2 fail_timeout=10s; サーバー 192.168.0.15:80 max_fails=2 fail_timeout=10s; } 6. url_hash (サードパーティモジュール ngx_http_upstream_hash_module をコンパイルしてインストールする必要があります) 機能: アクセス URL のハッシュ結果に基づいてリクエストを割り当て、同じ URL が同じバックエンド サーバーにアクセスするようにします。 適用可能なビジネス シナリオ: この方法は、バックエンド サーバーがキャッシュ サーバーである場合に、より効果的です。 アップストリームバックエンドサーバー{ サーバー 192.168.0.14:80 max_fails=2 fail_timeout=10s; サーバー 192.168.0.15:80 max_fails=2 fail_timeout=10s; $request_uri をハッシュします。 } 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: JavaScript ベースのシンプルな計算機の実装
>>: MySQL スロークエリを通じて MySQL のパフォーマンスを最適化する方法
//デフォルトプロトコル/ デフォルト プロトコルの使用は、リソース アクセス プロトコルが現在の...
LinuxサーバーのデフォルトのSSHポート番号は通常22なので、ほとんどのユーザーはセキュリティ上...
目次概要1. store.jsを定義する2. store.js を使用するコンポーネント3. 成果を...
明らかな HTML、隠された「公開スクリプト」 Web ページのダウンロード時間を短縮する鍵は、フ...
1. JDKをインストールする コンピュータの動作桁を確認します。 uname -ar 2017 x...
この記事の例では、vue検証コードコンポーネントで使用される具体的な実装コードを参考までに共有してい...
1. システム環境[root@localhost ホーム]# cat /etc/redhat-re...
質問:最近、プロジェクトを展開すると文字化けしたデータが出てきました。確認したところ、プロジェクトは...
最近、プロジェクトに取り組んでいるときに、Web ページ上のキーワードを強調表示する機能に遭遇しまし...
この記事では、参考までにMySQL 5.7.13 winx64のインストールと設定方法のグラフィック...
目次1: フロントエンドの手書きページング(データ量が少ない場合) 2: バックエンドのページング、...
目次ステップ 1: root ユーザーとしてログインします。ステップ 2: 新しいデータ テーブルを...
目次新しいユーザーを作成する新規ユーザーを承認する新規ユーザーのSSHキーログインを有効にする他のS...
<br />条件付きコメントはIEシリーズ製品上でXHTMLコード処理を分離して行うこと...
CI を利用してリリース用の Docker イメージをビルドすることで、全員のバージョンリリース効率...