nginx负载均衡

1.负载均衡的方式

一种是硬件来进行解决常见的硬件有NetScaler、F5、Radware和Array等商用的负载均衡器,但是它们是比较昂贵的

一种是通过软件来进行解决,常见的有LVS,Nginx,Apache等,他们是基于Linux系统并且开源的负载均衡策略.

2.nginx常用的负载均衡的算法

轮询(默认算法)----每个请求会依次分配给后端不同的应用服务器,不理会后端服务器的实际压力

加权轮询---权重越大的服务器,被分配到的次数就会越多,通常用于后端服务器性能不一致的情况

IP hash-----当同IP进行重复访问事会被指定到上次访问到的服务器,可以解决动态网站session共享问题

 

upstream模块常用参数说明:

server 192.168.0.100:80  负载均衡后端RealServer的IP或者域名,口不写的话默认80。高并发场景用域名,再通过DNS进行负载均衡
 weight=5  权重,默认为1,权重越大接收的请求越多
 max_fails=2  最大尝试的失败次数,默认为1,0表示禁止失败尝试
 fail_timeout=10s  失败超时时间,默认是10秒,通常3s左右比较合适
 backup  热备配置,前段RealServer出现问题后会自动上线backup服务器
 down  标志务器不可用,这个参数通常配合IP_HASH使用

 

3.搭建Keepalived:(Keepalived需要依赖openssl)

抛出问题:

       主机和备机都安装了nginx,如果主机宕了,怎么启用备机的nginx呢?怎么设置主机和备机呢? 如果主机死了怎么进行故障移除呢? 如果主机从不可用到可用状态又怎么进行恢复添加呢? 这些功能都是可以通过Keepalived来进行设置的.

      首先Keepalived可以在主机上产生一个虚拟的ip, 这里叫做vip(v是virtual的意思):192.168.200.150, keepalived会将这个vip绑定到交换机上.
当用户访问主机:192.168.200.129时, 交换机会通过这个ip和vip的对应找到192.168.200.129上的Nginx进行处理.
如果当有一天192.168.200.129上的Nginx挂掉的时候, Keepalived会立即在备机上生成一个相同的vip: 192.168.200.150, 当用户继续访问192.168.200.129时, 交换机上已经绑定了vip, 这时发现这个vip是存在于192.168.200.130上面的, 所以直接将请求转发到了备机上. 
如果主机被修复好能够继续对外提供服务时, 这时keepalived会将主机上继续生成这个vip, 同时回收在备机上生成的vip. 这个是通过心跳检查来判断主机已恢复使用.

 

参考网址1:https://www.cnblogs.com/wang-meng/p/5861174.html

参考网址2:http://www.linuxidc.com/Linux/2016-04/130350.htm

posted @ 2018-01-31 16:15  带刺的小花277  Views(200)  Comments(0Edit  收藏  举报