### 一、调配形式 Nginx的upstream反对5种调配形式,上面将会具体介绍,其中,前三种为Nginx原生反对的调配形式,后两种为第三方反对的调配形式:### 1、轮询
轮询是upstream的默认调配形式,即每个申请依照工夫程序轮流调配到不同的后端服务器,如果某个后端服务器down掉后,能主动剔除。upstream backend {    server 192.168.1.101:8888;    server 192.168.1.102:8888;    server 192.168.1.103:8888;}
### 2、weight

轮询的加强版,即能够指定轮询比率,weight和拜访几率成正比,次要利用于后端服务器异质的场景下。

upstream backend {    server 192.168.1.101 weight=1;    server 192.168.1.102 weight=2;    server 192.168.1.103 weight=3;}
### 3、ip_hash
每个申请依照拜访ip(即Nginx的前置服务器或者客户端IP)的hash后果调配,这样每个访客会固定拜访一个后端服务器,能够解决session统一问题。upstream backend {    ip_hash;    server 192.168.1.101:7777;    server 192.168.1.102:8888;    server 192.168.1.103:9999;}
### 4、fair

fair顾名思义,偏心地依照后端服务器的响应工夫(rt)来调配申请,响应工夫短即rt小的后端服务器优先调配申请。

upstream backend {    server 192.168.1.101;    server 192.168.1.102;    server 192.168.1.103;    fair;}
### 5、url_hash
与ip_hash相似,然而依照拜访url的hash后果来调配申请,使得每个url定向到同一个后端服务器,次要利用于后端服务器为缓存时的场景下。upstream backend {    server 192.168.1.101;    server 192.168.1.102;    server 192.168.1.103;    hash $request_uri;    hash_method crc32;}其中,hash_method为应用的hash算法,须要留神的是:此时,server语句中不能加weight等参数。
### 二、设施状态

从下面实例不难看出upstream中server指令语法如下:

server address [parameters]关键字server必选。address也必选,能够是主机名、域名、ip或unix socket,也能够指定端口号。parameters是可选参数,能够是如下参数:down:示意以后server已停用backup:示意以后server是备用服务器,只有其它非backup后端服务器都挂掉了或者很忙才会调配到申请。weight:示意以后server负载权重,权重越大被申请几率越大。默认是1.max_fails和fail_timeout个别会关联应用,如果某台server在fail_timeout工夫内呈现了max_fails次连贯失败,那么Nginx会认为其曾经挂掉了,从而在fail_timeout工夫内不再去申请它,fail_timeout默认是10s,max_fails默认是1,即默认状况是只有产生谬误就认为服务器挂掉了,如果将max_fails设置为0,则示意勾销这项查看。举例说明如下:upstream backend {    server    backend1.example.com    weight=5;    server    127.0.0.1:8080               max_fails=3 fail_timeout=30s;    server    unix:/tmp/backend3;           }