【nginx】 ロードバランサの設定
nginxでロードバランサ設定をします。
前準備
- サーバー1
- ロードバランサ用のサーバー
- IPを192.168.56.100に設定
- サーバー2
- Webサーバー
- IPを192.168.56.101に設定
- サーバー3
- Webサーバー
- IPを192.168.56.102に設定
nginxの設定
「/etc/nginx/nginx.conf」、「/etc/nginx/conf.d/default.conf」にそれぞれ以下のように設定が必要
※上記のサーバー1に記述
nginx.confの設定
upstream mycluster { server http://192.168.56.101; server http://192.168.56.102; }
conf.d/default.confの設定
location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header Host $host; proxy_pass http://mycluster; }
編集後再起動し、192.168.56.101、192.168.56.102に均等に振り分けられたら成功です。
以下は、振り分けに関する設定になります。
ロードバランサの細かい設定
振り分けられる割合を決める
upstream mycluster { server http://192.168.56.101 weight=3; server http://192.168.56.102; }
192.168.56.101と192.168.56.102の振り分けられる割合が3:1になります。
同一のクライアントからのリクエストは同じサーバーに飛ばす
upstream mycluster { ip_hash; server http://192.168.56.101; server http://192.168.56.102; }
接続元のIPアドレスを元に同じサーバーに飛ばすようになります。
※IPをキーにするので、ブラウザを変えても同じサーバーになります。
負荷が均等になるように振り分ける
upstream mycluster { least_conn; server http://192.168.56.101; server http://192.168.56.102; }
接続数が最も少ないサーバーに振り分けるようにし、負荷を均等近づけるようになります。