负载均衡策略,nginx负载均衡策略

    upstream mail.sina.net {             #upstream的负载均衡,weight是权重,可以根据机器配置定义权重。weigth参数表示权值,权值越高被分配到的几率越大。        server 192.168.80.121:80 weight=3;        server 192.168.80.122:80 weight=2;        server 192.168.80.123:80 weight=3;        #nginx的upstream目前支持4种方式的分配        #1、轮询        #每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。        #2、weight        #指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。        #例如:        #upstream bakend {        #    server 192.168.0.14 weight=10;        #    server 192.168.0.15 weight=10;        #}        #2、ip_hash        #每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。        #例如:        #upstream bakend {        #    ip_hash;        #    server 192.168.0.14:88;        #    server 192.168.0.15:80;        #}        #3、fair        #按后端服务器的响应时间来分配请求,响应时间短的优先分配。        #upstream backend {        #    server server1;        #    server server2;        #    fair;        #}        #4、url_hash        #按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。        #例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法        #upstream backend {        #    server squid1:3128;        #    server squid2:3128;        #    hash $request_uri;        #    hash_method crc32;        #}        #tips:        #upstream bakend{#定义负载均衡设备的Ip及设备状态}{        #    ip_hash;        #    server 127.0.0.1:9090 down;        #    server 127.0.0.1:8080 weight=2;        #    server 127.0.0.1:6060;        #    server 127.0.0.1:7070 backup;        #}        #在需要使用负载均衡的server中增加 proxy_pass http://bakend/;        #每个设备的状态设置为:        #1.down表示单前的server暂时不参与负载        #2.weight为weight越大,负载的权重就越大。        #3.max_fails:允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream模块定义的错误        #4.fail_timeout:max_fails次失败后,暂停的时间。        #5.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。        #nginx支持同时设置多组的负载均衡,用来给不用的server来使用。        #client_body_in_file_only设置为On 可以讲client post过来的数据记录到文件中用来做debug        #client_body_temp_path设置记录文件的目录 可以设置最多3层目录        #location对URL进行匹配.可以进行重定向或者进行新的代理 负载均衡    }

nginx 负载均衡战术

 

  1. 轮询

轮询方式是nginx负载均衡的私下认可计策,依据种种server的权重值来轮流发送央浼,比方:

upstream backend {
server backend1.example.com;
负载均衡策略,nginx负载均衡策略。server backend2.example.com;
}

这种情景是各种server都施用同一的权重,暗许值为1

能够手动设定权重,比方

upstream backend {
server backend1.example.com weight=5;
server backend2.example.com;
}

  1. 最少连接数

把央浼发送给激活连接数最少的那台服务器

设置方法

upstream backend {
least_conn;

server backend1.example.com;
server backend2.example.com;
}

  1. 足足延时

把诉求发送给连接延时最小的那台服务器

延时的猜测方式有三种:

(1)header – 从server接收到第一个byte的时日

(2)last_byte – 从server接收到全部响应的光阴

安装方法

upstream backend {
least_time header;

server backend1.example.com;
server backend2.example.com;
}

  1. ip hash

听闻顾客IP总计出二个hash值,并记录下来,今后同样hash值的呼吁都发送到同三个server,同二个客户的伸手始终使用一样台服务器,不用忧郁跨过服务器务器时的session难题

安装方法

upstream backend {
ip_hash;

server backend1.example.com;
server backend2.example.com;
}

  1. 通用hash

对客户钦定的key实行hash总括,能够钦定文本、变量恐怕组合

设置方式

upstream backend {
hash $request_uri consistent;

server backend1.example.com;
server backend2.example.com;
}

 

负载均衡除了轻便的upstream命令,还足以选择5种差异的载重形式。

nginx能够依照客商端IP实行负荷均衡,在upstream里设置ip_hash,就能够本着同三个C类地址段中的顾客端采纳同二个后端服务器,除非极度后端服务器宕了才会换三个。

此处就差不离转发一下百度上的解释

nginx的upstream近来补助的5种格局的分配

1、轮询(默认)

1、轮询(默认)
各样恳求定期间顺序依次分配到分歧的后端服务器,如若后端服务器down掉,能自行删除。 
upstream backserver { 
server 192.168.0.14; 
server 192.168.0.15; 

各类央浼定时间种种依次分配到不相同的后端服务器,假若后端服务器down掉,能自动删除。

2、钦赐权重
钦定轮询概率,weight和做客比率成正比,用于后端服务器品质不均的情状。 
upstream backserver { 
server 192.168.0.14 weight=10; 
server 192.168.0.15 weight=10; 

upstream backserver {

3、IP绑定 ip_hash
每一个诉求按访谈ip的hash结果分配,那样各类访客固定访谈一个后端服务器,能够缓和session的主题材料。 
upstream backserver { 
ip_hash; 
server 192.168.0.14:88; 
server 192.168.0.15:80; 

server 192.168.0.14;

4、fair(第三方)
按后端服务器的响应时间来分配诉求,响应时间短的事先分配。 
upstream backserver { 
server server1; 
server server2; 
fair; 

server 192.168.0.15;

5、url_hash(第三方)
按访问url的hash结果来分配央浼,使各类url定向到同贰个后端服务器,后端服务器为缓存时相比灵通。 
upstream backserver { 
server squid1:3128; 
server squid2:3128; 
hash $request_uri; 
hash_method crc32; 

}

在须求使用负载均衡的server中追加 

2、钦赐权重

proxy_pass ; 
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机器) 

钦赐轮询可能率,weight和做客比率成正比,用于后端服务器质量不均的图景。

max_fails
:允许诉求失利的次数默以为1.当超越最大次数时,重临proxy_next_upstream
模块定义的荒谬 

upstream backserver {

fail_timeout:max_fails次停业后,暂停的时日

server 192.168.0.14 weight=10;

发表评论

电子邮件地址不会被公开。 必填项已用*标注