Nginx负载均衡集群——upstream模块介绍和调度算法

upstream模块介绍

nginx的负载均衡功能来自于其模块ngx_http_upstream_module模块,该模块支持的代理方式有

uwsgi_pass
Fastcgi_pass
proxy_pass
Memcached_pass

#具体写法

upstream www_pools {
server x.x.x.x;
server x.x.x.x;
}

proxy_pass http://www_pools;

#完整的upstream配置案例

upstream www_pools {
server 192.168.178.121;
server 192.168.178.122:80 weight=1 max_fails=1 fail_timeout=10s;
server 192.168.178.123:80 weight=10 max_fails=2 fail_timeout=20s backup;
server 192.168.178.124:80 wetight=10 max_fails=2 fail_timeout=20s backup;
}

#使用域名及socket的upstream配置

upstream backend {
server backend1.example.com weight=5;
server backend2.example.com:8080;
server unix:/tmp/backend3;
server backend3.example.com:8080 backup;
}

upstream模块参数

#参数解释
server是固定关键字,后面跟着服务器ip或是域名,默认是80端口,也可以指定端口
weight表示节点的权重,数字越大,分配的请求越多,注意nginx结尾的分号
max_fails Nginx尝试连接后端节点失败的次数,根据企业情况调整,默认是1
backup 其它所有的非backup机器down或者忙的时候,请求backup机器,实现热备效果。
fail_timeout 在max_fails定义的次数失败后,距离下次检查的间隔时间,默认10s
down 表示当前主机暂停,不参与负载均衡
upstream模块的内容应放于nginx.conf配置中的 http{}标签内 其默认调度算法是wrr(权重轮询,weighted round-robin)

upstream模块调度算法

静态调度算法
根据负载均衡器自身设定的规则进行分配,不需要考虑后端节点的健康情况
#例如

1.轮询(round-robin)
特点:宕机的服务器会被自动从地址池中剔除

2.权重轮询(wrr)
特点:权重值越大,优先获得客户端请求

upstream backend {
server 192.168.178.125 weight=1;
server 192.168.178.124 weight=2;
}

3.ip_hash

特点:每个请求按客户端IP的hash结果分配,当新的请求到达,将其客户端IP通过哈希算法得到一个唯一值,在随后的客户端请求中,如果客户端的IP哈希值相等,该请求就会固定发给一台服务器。

  • 解决动态网页中的session共享问题 使用了ip_hash不得再使用weight、backup两个参数,照成冲突,即使写了也不生效
upstream chaoge_backend {
ip_hash;
server 192.168.178.124;
server 192.168.178.125;
}

4.url_hash

特点:与ip_hash类似,更具客户端请求的URL信息进行hash

  • nginx不支持url_hash,需要单独安装hash模块
upstream chaoge_backend {
server squid1:3128;
server squid:3128;
hash $request_uri;
hash_method crc32;
}

动态调度算法
判断后端节点的当前状态,来决定是否分发请求
#例如

least_conn
该算法根据后端节点的连接数决定分配请求,谁连接数少发给谁

fail
少用

upstream chaoge_backend {
fair;
server 192.168.178.124;
server 192.168.178.125;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值