一、概述Nginx的upstream目前支持的分配算法: 1、round-robin 轮询1:1轮流处理请求(默认) 每个请求按时间顺序逐一分配到不同的应用服务器,如果应用服务器down掉,自动剔除,剩下的继续轮询。 2、weight 权重(加权轮询) 通过配置权重,指定轮询几率,权重和访问比率成正比,用于应用服务器性能不均的情况。 3、ip_hash 哈希算法 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个应用服务器,可以解决session共享的问题。应用服务器如果故障需要手工down掉。 参数含义: down:表示单前的server暂时不参与负载 weight:默认为1,weight越大,负载的权重就越大。 max_fails:允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream模块定义的错误 fail_timeout:max_fails次失败后,暂停的时间。 backup:其它所有的非backup机器down或者忙的时候,请求backup机器。 二、配置

1、round-robin 轮询(默认)upstream tg-t4 { server 10.0.0.110:8099; server 10.0.0.110:8098;}server { listen 8096; server_name www.tg-t4.com; location / { proxy_pass http://tg-t4; }} 访问结果:ABABABABA 2、加权轮询upstream tg-t4 { server 10.0.0.110:8099 weight=2; server 10.0.0.110:8098 weight=5;}server { listen 8096; server_name www.tg-t4.com; location / { proxy_pass http://tg-t4; }} 访问结果:ABBABB ABBABB 注:weight影响的访问结果是按最小比例算的,而不是理想状态下:AABBBBB AABBBBB 3、ip_hashupstream tg-t4 { server 10.0.0.110:8099; server 10.0.0.110:8098; ip_hash;}server { listen 8096; server_name www.tg-t4.com; location / { proxy_pass http://tg-t4; }} 访问结果: IP1:AAAAAA IP2:BBBBBB 4、热备 |