Nginxが複数のアプリケーションインスタンスへ送れるよう、upstreamグループを定義します。その後、処理の分配方法と、障害中のインスタンスを一時的に避ける条件を決めます。
2台のアプリケーションサーバーから始める
以下はhttp内に置く例で、2つのプライベートアドレスにトラフィックを分配します。
nginx
upstream app {
server 10.0.0.11:3000 max_fails=2 fail_timeout=10s;
server 10.0.0.12:3000 max_fails=2 fail_timeout=10s;
}
server {
listen 80;
location / {
proxy_pass http://app;
}
}
重みが同じなら、デフォルトのround-robinは順番にサーバーを使います。この例のmax_failsとfail_timeoutにより、対象となる失敗が発生するとサーバーを一時的に除外できます。数値は動作説明用です。本番値はトラフィックと障害許容度から選びます。
