当前位置:   article > 正文

nginx upstream的五种分配方式_nginx weight=1 backup

nginx weight=1 backup

Nginx负载均衡选项upstream用法举例

1、轮询(weight=1)

默认选项,当weight不指定时,各服务器weight相同,
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

  1. upstream bakend {
  2. server 192.168.1.10;
  3. server 192.168.1.11;
  4. }

2、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
如果后端服务器down掉,能自动剔除。
比如以下配置,则1.11服务器的访问量为1.10服务器的两倍。

  1. upstream bakend {
  2. server 192.168.1.10 weight=1;
  3. server 192.168.1.11 weight=2;
  4. }

3、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session不能跨服务器的问题。
如果后端服务器down掉,要手工down掉。

  1. upstream resinserver{
  2. ip_hash;
  3. server 192.168.1.10:8080;
  4. server 192.168.1.11:8080;
  5. }

 

4、fair(第三方插件)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。

  1. upstream resinserver{
  2. server 192.168.1.10:8080;
  3. server 192.168.1.11:8080;
  4. fair;
  5. }

5、url_hash(第三方插件)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存服务器时比较有效。
在upstream中加入hash语句,hash_method是使用的hash算法。

  1. upstream resinserver{
  2. server 192.168.1.10:8080;
  3. server 192.168.1.11:8080;
  4. hash $request_uri;
  5. hash_method crc32;
  6. }

设备的状态有:
1、down 表示单前的server暂时不参与负载
2、weight 权重,默认为1。 weight越大,负载的权重就越大。
3、max_fails 允许请求失败的次数默认为1。当超过最大次数时,返回proxy_next_upstream 模块定义的错误
4、fail_timeout max_fails次失败后,暂停的时间。
5backup 备用服务器, 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。-

介绍了这么多,下面来看一个负载均衡实例:

  1. upstream tel_img_stream {
  2. #ip_hash;
  3. server 192.168.11.68:20201;
  4. server 192.168.11.69:20201 weight=100 down;
  5. server 192.168.11.70:20201 weight=100;
  6. server 192.168.11.71:20201 weight=100 backup;
  7. server 192.168.11.72:20201 weight=100 max_fails=3 fail_timeout=30s;

说明:

1)、down 表示当前的server暂时不参与负载
2)、weight 默认为1.weight越大,负载的权重就越大。
3)、backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
4)、上例中192.168.11.72:20201 设置最大失败次数为 3,也就是最多进行 3 次尝试,且超时时间为 30秒。max_fails 的默认值为 1,fail_timeout 的默认值是 10s。
注意,当upstream中只有一个 server 时,max_fails 和 fail_timeout 参数可能不会起作用。
weight\backup 不能和 ip_hash 关键字一起使用。http://www.jbxue.com/article/26828.html

最后在需要使用负载均衡的server中增加 proxy_pass http://tel_img_stream/;

 

双机热备

upstream  testproxy  {
        server   127.0.0.1:8080;
        server   192.168.1.15:8080 backup;
}

只要在希望成为后备的服务器ip后面多添加一个backup参数,这台服务器就会成为备份服务器。
在平时不使用,nginx不会给它转发任何请求。只有当其他节点全部无法连接的时候,nginx才会启用这个节点。
一旦有可用的节点恢复服务,该节点则不再使用,又进入后备状态。

可以两台机子互为热备,平时各自负责各自的服务。在做上线更新的时候,关闭一台服务器的tomcat后,nginx自动把流量切换到另外一台服务的后备机子上,从而实现无痛更新,保持服务的持续性,提高服务的可靠性。

关于这个参数的官档说明:
http://wiki.nginx.org/NginxHttpUpstreamModule
backup - (0.6.7 or later) only uses this server if the non-backup servers are all down or busy (cannot be used with the directive ip_hash)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/192651
推荐阅读
相关标签
  

闽ICP备14008679号