ホームページ  >  記事  >  運用・保守  >  nginx で負荷分散ポーリング構成を実装する方法

nginx で負荷分散ポーリング構成を実装する方法

PHPz
PHPz転載
2023-05-18 17:58:212268ブラウズ

1. 概要

Nginx のアップストリームで現在サポートされている割り当てアルゴリズム:
1. リクエストを順番に処理する 1:1 のラウンドロビン ポーリング (デフォルト)
各リクエストは 1 つずつ処理されます。 1 つは時系列順に異なるアプリケーション サーバーに割り当てられ、アプリケーション サーバーがダウンした場合は自動的に削除され、残りのアプリケーション サーバーは引き続きポーリングされます。
2. 重み付け (重み付けポーリング)
重み付けを設定することで、アクセス率に比例したポーリング確率を指定し、アプリケーションサーバーのパフォーマンスのばらつきを防止するために使用されます。
3. ip_hash ハッシュ アルゴリズム
各リクエストはアクセスされた IP のハッシュ結果に従って割り当てられるため、各訪問者はアプリケーション サーバーに固定的にアクセスでき、セッション共有の問題を解決できます。アプリケーション サーバーに障害が発生した場合は、手動でシャットダウンする必要があります。
パラメータの意味:
down: 以前のサーバーが一時的に負荷に参加しないことを示します。
weight: デフォルトは 1 です。重みが大きいほど、負荷の重みも大きくなります。
max_fails: 許可されるリクエストの失敗数のデフォルトは 1 です。最大数を超えると、proxy_next_upstream モジュールによって定義されたエラーが返されます。
fail_timeout: max_fails 回の失敗後の一時停止時間。
backup: 他のすべての非バックアップ マシンがダウンしているかビジー状態の場合、バックアップ マシンを要求します。

2. 設定

nginx で負荷分散ポーリング構成を実装する方法

nginx で負荷分散ポーリング構成を実装する方法

1. ラウンドロビンポーリング (デフォルト)

upstream tg-t4 {
    server 10.0.0.110:8099;
    server 10.0.0.110:8098;
}
server {
    listen 8096;
    server_name www.tg-t4.com;
    location / {
    proxy_pass http://tg-t4;
    }
}

アクセス結果: ABABABABA

2、重み付きポーリング

upstream tg-t4 {
    server 10.0.0.110:8099 weight=2;
    server 10.0.0.110:8098 weight=5;
}
server {
    listen 8096;
    server_name www.tg-t4.com;
    location / {
    proxy_pass http://tg-t4;
    }
}

アクセス結果: ABBABB ABBABB

注: 重みの影響を受けるアクセス結果は、理想的なステータスではなく、最小比率に基づいて計算されます。 : AABBBBB AABBBBB

3, ip_hash

upstream tg-t4 {
    server 10.0.0.110:8099;
    server 10.0.0.110:8098;
    ip_hash;
}
server {
    listen 8096;
    server_name www.tg-t4.com;
    location / {
    proxy_pass http://tg-t4;
    }
}

アクセス結果:

IP1:AAAAAA

IP2:BBBBBB

4, ホットスタンバイ

upstream tg-t4 {
    server 10.0.0.110:8099;
    server 10.0.0.110:8098 backup;
}

server {
    listen 8096;
    server_name www.tg-t4.com;
    location / {
    proxy_pass http://tg-t4;
    }
}

アクセス結果:

アクセス1:どちらのサービスも正常です。 AAAAAA

アクセス 2: 10.0.0.110:8099 を非アクティブ化しました。 BBBBBB

アクセス 3: 10.0.0.110:8099 を再起動します。 AAAAAA

5. パラメータの最適化を追加します

upstream tg-t4 {
    server 10.0.0.110:8099 weight=1 max_fails=2 fail_timeout=2;
    server 10.0.0.110:8098 weight=3 max_fails=2 fail_timeout=2 backup;
}

server {
    listen 8096;
    server_name www.tg-t4.com;
    location / {
    proxy_pass http://tg-t4;
    }
}

アクセス結果: 4

と同じバックアップが最も優先されます。このパラメータが設定されている場合、対応するサービスはホットスタンバイ。

以上がnginx で負荷分散ポーリング構成を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。