nginx集搭建⽅案(教你如何搭建nginx集)
NGINX作为反向代理服务器可以实现负载均衡,同时也可以作为静态⽂件服务器,它的特点就是并发⽀持⼤,单机可同时⽀持3万并发,现在很多⽹站都把NGINX作为⽹关⼊⼝来统⼀调度分配后端资源。但是如果NGINX宕机了,就会导致整个后台服务⽆法使⽤;或者当并发量真的⾮常⼤时,达到⼗万级别时,⼀台NGINX还是有极限的,所以这个时候就需要针对NGINX进⾏主从备份保证服务⾼可⽤、集来分担并发压⼒。⽬前,NGINX在这两块主要有以下⼏种解决⽅案,我分别给⼤家介绍以下
NGINX主从备份
NGINX实现主从备份⽬前主流⽅案是Keepalived+Nginx实现双机热备。
Keepalived介绍:
Keepalived是⼀个基于VRRP协议来实现的服务⾼可⽤⽅案,可以利⽤其来避免IP单点故障,类似的⼯具还有heartbeat、corosync、pacemaker。但是它⼀般不会单独出现,⽽是与其它负载均衡技术(如lvs、haproxy、nginx)⼀起⼯作来达到集的⾼可⽤。
VRRP协议:
VRRP全称 Virtual Router Redundancy Protocol,即虚拟路由冗余协议。可以认为它是实现路由器⾼可⽤的容错协议,即将N台提供相同功能的路由器组成⼀个路由器组(Router Group),这个组⾥⾯有⼀个master和多个backup,但在外界看来就像⼀台⼀样,构成虚拟路由器,拥有⼀个虚拟IP(vip,也就是路由器所在局域⽹内其他机器的默认路由),占有这个IP的master实际负责ARP相应和转发IP数据包,组中的其它路由器作为备份的⾓⾊处于待命状态。master会发组播消息,当backup在超时时间内收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举⼀个backup当master,保证路由器的⾼可⽤。
在VRRP协议实现⾥,虚拟路由器使⽤ 00-00-5E-00-01-XX 作为虚拟MAC地址,XX就是唯⼀的 VRID (Virtual Router IDentifier),这个地址同⼀时间只有⼀个物理路由器占⽤。在虚拟路由器⾥⾯的物理路由器组⾥⾯通过多播IP地址224.0.0.18 来定时发送通告消息。每个Router都有⼀个 1-255 之间的优先级别,级别最⾼的(highest priority)将成为主控(master)路由器。通过降低master的优先权可以让处于backup状态的路由器抢占(pro-empt)主路由器的状态,两个backup优先级相同的IP地址较⼤者为master,接管虚拟IP。
具体实现原理:
1)Master没挂,则Master占有vip且nginx运⾏在Master上
2)Master挂了,则backup抢占vip且在backup上运⾏nginx服务
3)如果master服务器上的nginx服务挂了,则vip资源转移到backup服务器上
4)检测后端服务器的健康状态
Master和Backup两边都开启nginx服务,⽆论Master还是Backup,当其中的⼀个keepalived服务停⽌后,vip都会漂移到keepalived服务还在的节点上
NGINX和keepalived安装配置
⽹上安装配置⽐较多,还有编写脚本实现互相监控、报警等,可⾃⾏查阅。
NGINX分布式集
如果有多台NGINX想实现负载均衡,
1、每台nginx都有公⽹地址,在域名处设置同个域名多个指向,最简单实现轮洵。但故障切负会慢⼀点。
2、⼀台公⽹nginx通过upstream功能,轮洵、ip、url多⽅式分发到内⽹多台nginx。但公⽹的nginx如果down机的话,内⽹全段。
nginx和网关怎么配合使用3、⼀对公⽹nginx加三个公⽹ip,通过keepalive实现⾼可⽤,再upstream到内⽹(就是我们刚刚上⼀节讲的主从备份)。⼀般来说,上⾯1、2、3种⽅法基本可以解决,建议⽤2或3;
如果并发量真的巨⼤的话,⼀般就要借助硬件F5等设备做负载均衡,跟DNS、CDN等服务商合作做域名解析转发、缓存配置,这也是⽬前各⼤互联⽹公司的做法。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论