博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

nginx upstream轮询配置

Posted on 2015-01-11 23:21  jong  阅读(6226)  评论(0编辑  收藏  举报

nginx upstream

  nginx的upstream官方地址为:http://nginx.org/cn/docs/http/ngx_http_upstream_module.html

  轮询分为多种,分为普通轮询(一个接一个的进行访问,即按加权轮转的方式将请求分发到各服务器),ip_hash轮询,url_hash轮询,以及fair轮询等方法。

  nginx upstream轮询配置。

  upstream在http中,与server同等级别

  upstream 域名 {

    server IP地址;

  }

  server {

    location / {

      proxy_pass http://域名;

    }

  }

  fail轮训: 按照响应时间进行分配请求,响应时间短,即rt小的后端服务器优先分配请求;

  upstream backup {

    fail;

    server 172.16.76.150;

    server 172.16.76.151;

  }

  与ip_hash类似,但是按照访问url的hash结果来分配请求,使得每个url定向到同一个后端服务器,主要应用于后端服务器为缓存时的场景下。

  upstream backup  {

    server 172.16.76.150;

 

    server 172.16.76.151;

     hash $request_uri;

    hash_method crs32;

  }  其中,hash_method为使用的hash算法,需要注意的是:此时,server语句中不能加weight等参数

  在upstream的server IP地址/域名/socket后面跟的参数:

  weight = number

    设定服务器的权重 ,默认是1

  max_fails= number 

    设定nginx与服务器的通信次数,在fail_timeout参数定义的时间段内,如果失败的次数达到次指,nginx就认为这台服务器不能进行使用。在下一个fail_timeout时间段内,nginx服务器不会访问这台服务器。

  fail_timeout = time

    统计失败尝试次数的时间段。在这段时间内,服务器失败次数达到指定的尝试次数,服务器就被认为不可用

    服务器认为不可用的时间段

  backup

    服务器备机地址

  down

    标志服务器永久不可用,可以跟ip_hash一起使用。