2.5. NGINX を HTTP ロードバランサーとして設定

NGINX リバースプロキシー機能を使用してトラフィックを負荷分散できます。この手順では、アクティブな接続数が最も少ない数に基づいて、異なるサーバーにリクエストを送信する HTTP ロードバランサーとして NGINX を設定する方法を説明します。両方のサーバーが利用できない場合、この手順はフォールバックの理由として 3 番目のホストも定義します。

前提条件

手順

  1. /etc/nginx/nginx.conf ファイルを編集し、以下の設定を追加します。

    http {
        upstream backend {
            least_conn;
            server server1.example.com;
            server server2.example.com;
            server server3.example.com backup;
        }
    
        server {
            location / {
                proxy_pass http://backend;
            }
        }
    }

    backend という名前のホストグループの least_conn パラメーターは、アクティブな接続数が最も少ないホストによって NGINX が server1.example.com または server2.example.com に要求を送信することを定義します。NGINX は、他の 2 つのホストが利用できない場合は、server3.example.com のみをバックアップとして使用します。

    proxy_pass パラメーターを http://backend に設定すると、NGINX はリバースプロキシーとして機能し、backend ホストグループを使用して、このグループの設定に基づいて要求を配信します。

    least_conn 負荷分散メソッドの代わりに、以下を指定することができます。

    • ラウンドロビンを使用し、サーバー全体で要求を均等に分散する方法はありません。
    • ip_hash - クライアントの、IPv4 アドレスの最初の 3 つのオクテット、または IPv6 アドレス全体から計算されたハッシュに基づいて、あるクライアントアドレスから同じサーバーに要求を送信します。
    • hash $request consistent - ユーザー定義のキーに基づいてサーバーを判断します。これは文字列、変数、または両方の組み合わせになります。consistent パラメーターは、ユーザー定義のハッシュ化された鍵の値に基づいて、NGINX がすべてのサーバーに要求を分散するように設定します。
    • random -無作為に選択されたサーバーに要求を送信します。
  2. nginx サービスを再起動します。

    # systemctl restart nginx

このページには機械翻訳が使用されている場合があります (詳細はこちら)。