2.5. NGINX の HTTP ロードバランサーとしての設定
NGINX リバースプロキシー機能を使用してトラフィックを負荷分散できます。この手順では、HTTP ロードバランサーとして NGINX を設定して、アクティブな接続数が最も少ないサーバーがどれかを基にして、要求を異なるサーバーに送信する方法を説明します。どちらのサーバーも利用できない場合には、この手順でフォールバックを目的とした 3 番目のホストも定義します。
前提条件
- NGINX は、NGINX のインストールと準備 の説明に従ってインストールされます。
手順
/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
: ユーザー定義のキーに基づいてサーバーを判断します。これは、文字列、変数、または両方の組み合わせになります。consistent
パラメーターは、ユーザー定義のハッシュ化された鍵の値に基づいて、NGINX がすべてのサーバーに要求を分散するように設定します。 -
random
: 無作為に選択されたサーバーに要求を送信します。
nginx
サービスを再起動します。# systemctl restart nginx