雑記

インフラのことだったりプログラムのことだったりどうでもいいこと書いたり。要は雑記。

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;
}