ロードバランスの色んなオプションを確認します。
それぞれ、nginx.confのupstreamディレクトリブをいじっています。
upstream backend {
server 192.168.200.2:80 ;
server 192.168.200.3:80 ;
}
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# curl http://localhost/test.html
nginx03
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# curl http://localhost/test.html
nginx03
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# curl http://localhost/test.html
nginx03
まずはデフォルトはラウンドロビンなので、順番にそれぞれのホストに接続します。
upstream backend {
server 192.168.200.2:80 weight=3;
server 192.168.200.3:80 ;
}
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# curl http://localhost/test.html
nginx03
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# curl http://localhost/test.html
nginx03
weightオプションを着けると、サーバーに重み付けされます。
重み付けされたサーバに優先的に接続します。
デフォルトは1、重みが無い状態です。
upstream backend {
server 192.168.200.2:80 ;
server 192.168.200.3:80 down;
}
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
また、downオプションを着けると、そのサーバーは接続されません。
upstream backend {
server 192.168.200.2:80 ;
server 192.168.200.3:80 backup;
}
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# ssh 192.168.200.2
root@192.168.200.2's password:
Last login: Thu Mar 17 00:26:02 2016 from 192.168.200.1
[root@nginx02 ~]# service nginx stop
nginx を停止中: [ OK ]
[root@nginx02 ~]# exit
logout
Connection to 192.168.200.2 closed.
[root@nginx01 ~]# curl http://localhost/test.html
nginx03
[root@nginx01 ~]# curl http://localhost/test.html
nginx03
backupオプションは、backup以外のサーバーがダウンしている時にのみ接続されます。
upstream backend {
ip_hash ;
server 192.168.200.2:80 ;
server 192.168.200.3:80 ;
}
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
ip_hashオプションを着けると、同じIPのクライアントは必ず同じサーバーに繋がるようになります。
それぞれ、nginx.confのupstreamディレクトリブをいじっています。
upstream backend {
server 192.168.200.2:80 ;
server 192.168.200.3:80 ;
}
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# curl http://localhost/test.html
nginx03
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# curl http://localhost/test.html
nginx03
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# curl http://localhost/test.html
nginx03
まずはデフォルトはラウンドロビンなので、順番にそれぞれのホストに接続します。
upstream backend {
server 192.168.200.2:80 weight=3;
server 192.168.200.3:80 ;
}
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# curl http://localhost/test.html
nginx03
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# curl http://localhost/test.html
nginx03
weightオプションを着けると、サーバーに重み付けされます。
重み付けされたサーバに優先的に接続します。
デフォルトは1、重みが無い状態です。
upstream backend {
server 192.168.200.2:80 ;
server 192.168.200.3:80 down;
}
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
また、downオプションを着けると、そのサーバーは接続されません。
upstream backend {
server 192.168.200.2:80 ;
server 192.168.200.3:80 backup;
}
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# ssh 192.168.200.2
root@192.168.200.2's password:
Last login: Thu Mar 17 00:26:02 2016 from 192.168.200.1
[root@nginx02 ~]# service nginx stop
nginx を停止中: [ OK ]
[root@nginx02 ~]# exit
logout
Connection to 192.168.200.2 closed.
[root@nginx01 ~]# curl http://localhost/test.html
nginx03
[root@nginx01 ~]# curl http://localhost/test.html
nginx03
backupオプションは、backup以外のサーバーがダウンしている時にのみ接続されます。
upstream backend {
ip_hash ;
server 192.168.200.2:80 ;
server 192.168.200.3:80 ;
}
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
[root@nginx01 ~]# curl http://localhost/test.html
nginx02
ip_hashオプションを着けると、同じIPのクライアントは必ず同じサーバーに繋がるようになります。

コメント