nginx ロードバランシング serverのパラメータまとめ

書式

upsteram appserver {
  server address1 [parametaers];
  server address2 [parametaers];
}

serverに指定可能なパラメータ

name value type default
weight number 1
max_fails number 1
fail_timeout time 10s
backup no value
down no value

weight

  • サーバーの比重設定 例
upstream astamuse_app {
  server app1.example.com weight=5;
  server app2.example.com weight=2;
  server app3.example.com;
}

この場合、8リクエストごとに、一番上に5、真ん中に2、一番下に1リクエスト割り振られる

max_fails

  • fail_timeoutで指定された時間内にサーバーに対する通信の最大試行回数
  • この回数を超えた場合、サーバーは停止状態として扱われる
  • 0はこの機能を無効
  • 失敗はproxy_next_upstream,fastcgi_next_upstreamで定義される(http_404エラーは除く)

fail_timeout

2つの意味をもつ

  • 時間内にmax_failsで指定された回数、サーバーとの通信が失敗すると、サーバーが停止状態とする
  • サーバーが停止状態とみなしている時間。停止状態から設定した時間経過すると、稼働状態とみなすようになる。

backup

  • バックアップサーバーの印
  • バックアップサーバー以外が全て停止、またはビジーの時のみこのサーバーが使用される

down

  • サーバーが常に停止しているものとして扱う