Nginxでロードバランサーの機能を使う上で必要な設定を確認しました。
sticky sessionでサーバーを振り分ける
リクエストのcookieを見て、どのサーバーに割り振るか決定するパターンです。
サードパーティー製のモジュールが必要なのでビルド必須です。
https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/overview
upstream app_server {
sticky;
app1 192.168.0.1:8080;
app2 192.168.0.2:8080;
app3 192.168.0.3:8080;
}
IP hashingでサーバーを振り分ける
リクエストを送ってきたクライアントのipでどのサーバーに振り分けるか決定するパターンです。
upstream app_server {
ip_hash;
app1 192.168.0.1:8080;
app2 192.168.0.2:8080;
app3 192.168.0.3:8080;
}
接続数がもっとも少ないサーバーに振り分けるようにする
すべてのサーバーの接続数が均等になるように振り分けるパターンです。
upstream app_server {
least_conn;
app1 192.168.0.1:8080;
app2 192.168.0.2:8080;
app3 192.168.0.3:8080;
}
サーバーの振り分けに重みをつける
特定のサーバーに対して多めにリクエストを割り振りたいパターンです。
以下の例だとapp1:app2:app3 = 3:1:1
になります。
upstream app_server {
app1 192.168.0.1:8080 weight=3;
app2 192.168.0.2:8080;
app3 192.168.0.3:8080;
}