nginxでロードバランス設定メモ
ロードバランスというかupstreamの設定に関するメモ。
- 参考
http://nginx.org/en/docs/http/ngx_http_upstream_module.html
振り分けの重みづけしたい
weightで調整
upstream backend { server example-1:8080 weight=4; server example-2:8080; }
上記設定では、例えば5回のアクセスがあったら以下の配分となる
example-1 5回中4回のアクセス
example-2 5回中1回のアクセス
バックエンドのアクセスが失敗した時の挙動を調整したい
max_failsとfail_timeoutで調整
upstream backend { ip_hash; server example-1:8080 max_fails=3 fal_timeout=10s; server example-2:8080; }
上記の場合、3回試行し、全てダメだったらダウンと判断する。1回のアクセス時のタイムアウトは10秒。
アクセス元が同じIPの場合、前回と同じバックエンドに振り分けたい
ip_hashを設定
upstream backend { ip_hash; server example-1:8080; server example-2:8080; }
接続数が最も少ないバックエンドに振り分けたい
least_connを設定
upstream backend { least_conn; server example-1:8080; server example-2:8080; }
メインとなるバックエンドが落ちた時に別のサーバに振り分けたい
backupを設定
upstream backend { server example-1:8080; server example-2:8080 backup; }