nginx应用场景6——负载均衡

1,nginx的划分

地域

GLSB:全局负载均衡,Global Server Load Balance

SLB:一般用到,服务器负载均衡(Server Load Balancing)

 

网络模型

负载均衡又分为四层负载均衡(传输层,TCP/IP)和七层负载均衡(应用层)

 

nginx就是典型的七层负载均衡服务器。

nginx的负载均衡主要用到的是 proxy_pass:

2,主要语法(记住upstream是在server外面):

upstream imooc {

server 116.62.103.228:8001;

server 116.62.103.228:8002;

server 116.62.103.228:8003;

}

 

server{

location / {

proxy_pass http://imooc;

include proxy_params;

}

}

 

默认是轮训方式。一旦一个节点出了问题,就不会显示该节点

 

upstream举例:

upstream imooc {

server 116.62.103.228:8001 down;

server 116.62.103.228:8002 backup;

server 116.62.103.228:8003 max_fails=1 fail_timeout=10s;

}

 

 

后端服务器在负载均衡调度中的状态:

down 当前的server暂时不参与负载均衡

backup 预留的备份服务器

max_fails 允许请求失败的次数

fail_timeout: 经过max_fails失败后,服务暂停的时间

max_conns: 限制最大的接受的连接数

 

3,nginx的调度算法:

轮训 按时间顺序逐一分配不同的后端服务器

加权轮训 weight值越大,分配到的访问几率越高

ip_hash 每个请求按访问IP的hash结果分配,这样来自同一个IP固定访问一个后端服务器

least_conn 最少链接数,哪个机器的连接数少就分发。

url_hash 按照访问的URL的hash结果来分配请求,使每个URL定向到同一个后端服务器

hash关键数值 hash自定义的key

 

 

 

加权轮训示例:

upstream imooc {

server 116.62.103.228:8001;

server 116.62.103.228:8002 weight=5;

server 116.62.103.228:8003;

}

 

ip_hash示例,但是它有一个缺陷,如果前端走代理,它的hash就不通了:

upstream imooc {

ip_hash;

server 116.62.103.228:8001;

server 116.62.103.228:8002;

server 116.62.103.228:8003;

}

 

url_hash方式:

upstream imooc {

hash $request_uri;

server 116.62.103.228:8001;

server 116.62.103.228:8002;

server 116.62.103.228:8003;

}

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值