常见的负载均衡方式有:
- 热备
- 轮询(默认)
- 加权轮询
- Ip_Hash
热备
假如有两台服务器A和B,只有A故障后才访问B。
upstream mysvr {
server 127.0.0.1:7878;
server 127.0.0.1:8787 backup; #热备
}
轮询
服务器如果down掉,自动剔除
upstream mysvr {
server 127.0.0.1:7878;
server 127.0.0.1:8787;
}
加权轮询
weight 权重越高,分配的客户端越多
upstream mysvr {
server 127.0.0.1:7878 weight = 1 ;
server 127.0.0.1:8787 weight = 10;
}
Ip_Hash
对同一个IP,每次路由至固定服务器,可以解决session不共享的问题。
upstream mysvr {
server 127.0.0.1:7878;
server 127.0.0.1:8787;
Ip_Hash;
}
FailOver配置
包含两个参数max_fails和fail_timeout,具体如下:
upstream mysvr {
server 127.0.0.1:7878 max_fails = 3 fail_timeout = 30;
server 127.0.0.1:8787 max_fails = 3 fail_timeout = 30;
}
max_fails设置允许请求代理服务器失败的次数,默认为1。
fail_timeout设置经过max_fails失败后,nginx不再转发请求到该服务器的时间间隔,默认是10秒。