2.5. NGINX の HTTP ロードバランサーとしての設定
NGINX リバースプロキシー機能を使用してトラフィックを負荷分散できます。この手順では、HTTP ロードバランサーとして NGINX を設定して、アクティブな接続数が最も少ないサーバーがどれかを基にして、要求を異なるサーバーに送信する方法を説明します。どちらのサーバーも利用できない場合には、この手順でフォールバックを目的とした 3 番目のホストも定義します。
前提条件
- NGINX がインストールされている。
手順
/etc/nginx/nginx.conf
ファイルを編集し、以下の設定を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# systemctl restart nginx
Copy to Clipboard Copied! Toggle word wrap Toggle overflow