nginx 负载均衡策略有哪几种

发布时间:2022-05-12 13:36 来源:新网 阅读:148 作者:网络 栏目: 服务器 欢迎投稿:712375056

  nginx可以根据客户端IP进行,在upstream里设置ip_hash,就可以针对同一个C类地址段中的客户端选择同一个后端,除非那个后端服务器宕了才会换一个。在服务器集群中,Nginx起到一个的角色(即反向代理),为了避免单独一个服务器压力过大,将来自用户的请求转发给不同的服务器。负载均衡用于从“upstream”模块定义的后端服务器列表中选取一台服务器接受用户的请求。下面就由小编和大家讲一讲nginx 负载均衡策略有哪几种。

  nginx的upstream目前支持的5种方式的分配:

  一、轮询(默认)

  每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

  upstream backserver {

  server 192.168.0.14;

  server 192.168.0.15;

  }

  二、指定权重

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

  upstream backserver {

  server 192.168.0.14 weight=10;

  server 192.168.0.15 weight=10;

  }

  三、IP绑定 ip_hash

  每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

  upstream backserver {

  ip_hash;

  server 192.168.0.14:88;

  server 192.168.0.15:80;

  }

  四、fair(第三方)

  按后端服务器的响应时间来分配请求,响应时间短的优先分配。

  upstream backserver {

  server server1;

  server server2;

  fair;

  }

  五、url_hash(第三方)

  按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

  upstream backserver {

  server squid1:3128;

  server squid2:3128;

  hash $request_uri;

  hash_method crc32;

  }

  在需要使用负载均衡的server中增加

  proxy_pass https://www.56dr.com/

  upstream backserver{

  ip_hash;

  server 127.0.0.1:9090 down; (down 表示单前的server暂时不参与负载)

  server 127.0.0.1:8080 weight=2; (weight 默认为1.weight越大,负载的权重就越大)

  server 127.0.0.1:6060;

  server 127.0.0.1:7070 backup; (其它所有的非backup机器down或者忙的时候,请求backup机器)

  }

  max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误

  fail_timeout:max_fails次失败后,暂停的时间

  以上便是5种负载均衡策略的实现方式,其中除了轮询和轮询权重外,都是Nginx根据不同的算法实现的。在实际运用中,需要根据不同的场景选择性运用,大都是多种策略结合使用以达到实际需求。小伙伴们要想获得更多nginx 负载均衡策略的内容,请关注特网!

免责声明:本站发布的内容(图片、视频和文字)以原创、来自本网站内容采集于网络互联网转载等其它媒体和分享为主,内容观点不代表本网站立场,如侵犯了原作者的版权,请告知一经查实,将立刻删除涉嫌侵权内容,联系我们QQ:712375056,同时欢迎投稿传递力量。