配置策略:
轮询(默认)
权重
ip hash
url hash(第三方)
fair(第三方)
轮询(默认):
- 优点:实现简单(不用设置,默认就是使用的这个策略)
- 缺点:不考虑每台服务器的处理能力
权重(实际生产环境用的最多的配置):
- 优点:考虑了每台服务器处理能力的不同
- 配置:
upstream www.izou.work{
server www.izou.work:8080 weight=10;
server www.izou.work:9080 weight=5;
}
ip hash
- 优点:能实现同一个用户访问同一个服务器
- 缺点:根据ip hash不一定平均
- 配置:
upstream www.izou.work{
ip_hash;
server www.izou.work:8080 ;
server www.izou.work:9080;
}
url hash(第三方)
- 优点:能实现同一个服务访问同一个服务器
- 缺点:根据url hash分配请求会不平均,请求频繁的url会请求到同一个服务器上
- 配置:
upstream www.izou.work{
server www.izou.work:8080 ;
server www.izou.work:9080;
hash $request_uri;
}
fair(第三方)
- 特点:按后端服务器的响应时间来分配请求,响应时间短的优先
- 配置:
upstream www.izou.work{
server www.izou.work:8080 ;
server www.izou.work:9080;
fair;
}
负载均衡参数知识点:
upstream backserver{
ip_hash;(使用ip_hash策略配置)
server 127.0.0.1:9090 down;(down表示当前的server暂时不参与负载)
server 127.0.0.1:8080 weight=2;(weight默认为1,wieght越大,负载的权重越大)
server 127.0.0.1:7070
server 127.0.0.1:6060;(当作备用,其他所有非backup机器down或者忙的情况下,请求backup机器)
}
补充:
upstream指令参数
max-conns:
限制每台server的连接数,用于保护避免过载,可起到限流作用.参考配置如下:
#worker进程设置1个,便于测试观察成功的连接数
worker_processes 1;
upstream tomcats{
server 192.168.2.21:8080 max_conns=2;
server 192.168.2.22:8080 max_conns=2;
server 192.168.2.23:8080 max_conns=2;
}
slow_start:
商业版,需要付费
配置参考如下
upstream tomcats{
server 192.168.2.21:8080 weight =2 slow_start=60s;
server 192.168.2.22:8080 weight =2;
server 192.168.2.23:8080 weight=2;
}
注意:
- 该参数不能使用在hash和random load balancing中
- 如果在upsteam中只有一台server,则该参数失效
down:
用于标记服务节点不可用:
配置参考如下
upstream tomcats{
server 192.168.2.21:8080 weight =2 down;
server 192.168.2.22:8080 weight =2;
server 192.168.2.23:8080 weight=2;
}
backup:
表示当前服务器是备用机,只有在其他服务器都宕机以后,自己才会加入到集群中,被用户访问:
配置参考如下
upstream tomcats{
server 192.168.2.21:8080 weight =2 backup;
server 192.168.2.22:8080 weight =2;
server 192.168.2.23:8080 weight=2;
}
注意:
- 该参数不能使用在hash和random load balancing中
max_fails:
表示失败几次,则标记为已宕机,踢出上游服务
faiL_timeoust:
表示失败的重试时间
Keepalived:
提高吞吐量
keepalived
:设置长链接处理的数量
proxy_http_version':设置长连接http版本
proxy_set_header`:清除connection header 信息
upstream tomcats{
server 192.168.2.21:8080 weight =2 slow_start=60s;
server 192.168.2.22:8080 weight =2;
server 192.168.2.23:8080 weight=2;
keepalive 32;
}
server {
lisstne 80;
server_name www.tomcats.com
location / {
proxy_pass http://tomcats;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
}