nginx 配置负载均衡有轮询(默认),权重 weight,ip_hash(依据ip分配),least_conn(最少连接),fair(第三方),url_hash第三方)方式来配置。

轮询(默认的方式)

默认情况下使用轮询方式,逐一转发,这种方式适用于无状态请求。

upstream mytomcats{
     server 192.168.0.253:8080;
     server 192.168.0.253:8081;
     server 192.168.0.252:8080;
     server 192.168.0.252:8081;
}

权重 weight

值越大, 分配越多
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

upstream mytomcats{
      server 192.168.0.253:8080 weight=8 down;
      server 192.168.0.253:8081 weight=2;
      server 192.168.0.252:8080 weight=2;
      server 192.168.0.252:8081 weight=1 backup;
}
  • down:表示当前的server暂时不参与负载
  • weight:默认为1.weight越大,负载的权重就越大。
  • backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。

ip_hash

根据客户端的ip地址转发同一台服务器,可以保持回话。
在用户ip 未更改的前提下, 用户多次请求会访问到同一个服务器
如果要移除某个服务器, 只能标记为 down, 不能直接删除

upstream mytomcats{
    ip_hash;

    server 192.168.0.253:8080;
    server 192.168.0.253:8081;
    server 192.168.0.252:8080;
    server 192.168.0.252:8081 down;
}

url_hash

据每次请求的url地址,hash后访问到同一个的服务器

upstream mytomcats{
    # url hash
    hash $request_uri;

    server 192.168.0.253:8080;
    server 192.168.0.253:8081;
    server 192.168.0.252:8080;
    server 192.168.0.252:8081;
}