公式ドキュメント(目次)
nginx のロードバランサについての公式ドキュメント(目次)は以下になります。
nginx の設定ファイルのサンプル
最低限の nginx の設定ファイルを書くと以下のようになるかと思います。
下記の設定ファイルの動作は次のとおりです。
- Webブラウザから
http://your-domain.exmaple.com
にアクセスが来る - サーバマシンを基準として、
10.10.10.123:80
または10.10.10.124:80
のどちらかのアドレスで起動しているサーバにアクセス先が向けられる - アクセス先が向けられたサーバの設定ファイルに従って*1、Webブラウザにレスポンスを返す
upstream wakari_yasui_namae { server 10.10.10.123:80; server 10.10.10.124:80; } server { listen 80; server_name your-domain.example.com; location / { proxy_pass http://wakari_yasui_namae; } }
ロードバランスの方法
ロードバランスを行うための方法はいくつかあります。以下が公式ドキュメントです。
1. ラウンドロビン
ロードバランス先のサーバに重み付けをする方法です。重み付けは数値で設定します。例えば、以下のような設定ファイルとなります。
upstream wakari_yasui_namae { server 10.10.10.123:80 weight=5; server 10.10.10.124:80; } server { listen 80; server_name your-domain.example.com; location / { proxy_pass http://wakari_yasui_namae; } }
上記の設定ファイルの場合、6つのアクセスがあった際には、10.10.10.123:80
に 5つのアクセスが、10.10.10.124:80
に1つのアクセスが振り分けられます。
2. 最小接続
最小接続方式は、ロードバランス先のサーバのうち、現存接続数が最も少ないサーバにアクセスを振り分ける方式です。設定ファイルは次のように書きます。
upstream wakari_yasui_namae { least_conn; server 10.10.10.123:80 weight=5; server 10.10.10.124:80; } server { listen 80; server_name your-domain.example.com; location / { proxy_pass http://wakari_yasui_namae; } }
3. IPハッシュ
IPハッシュ方式は、接続元のIPアドレスを基準として接続先サーバを振り分ける方式です。設定ファイルは次のように書きます。
upstream wakari_yasui_namae { ip_hash; server 10.10.10.123:80; server 10.10.10.124:80; } server { listen 80; server_name your-domain.example.com; location / { proxy_pass http://wakari_yasui_namae; } }
上記のように書いた場合、同じIPアドレスからの接続は、ロードバランサで最初に振り分けられたサーバにずっと向きます。なおここで「同じIPアドレス」とは、IPアドレスの上位3桁の数値の一致を指します*2。
4. その他の方法
上記の3つ以外にも方法はあります*3。詳しくは公式ドキュメントをご覧ください。
補足
実際に動作を確かめるためには Docker を使うのがやはり良いと思います。