Nginx负载均衡:常用策略配置、参数知识点

配置策略:

轮询(默认)
权重
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 "";
  }
}

你可能感兴趣的:(Nginx负载均衡:常用策略配置、参数知识点)