nginx+keepalived负载均衡可用框架(一 keepalived双机系统)

如果这篇文章牛逼,是因站在各位大牛肩膀上的,如果这篇文章傻逼,是因鄙人能力有限无法吸收各位大牛精髓。


为何要nginx+keepalived实现负载均衡呢?

有人说我直接nginx不就能实现负载均衡了吗?试问如果你那台nginx挂掉了呢?

下面看看一位大牛的架构

做负载均衡的nginx服务器两台(其中一台做备用机,通过keepalived来管理)

中间那个蓝色的不是a10或f5之类的,这只是形容nginx软负载均衡。

nginx_1,nginx_2,nginx_3是3台web服务器,当然你可以添加更多。

数据库分为主从库(这里不多说数据库方面)


具体实施步骤

1.安装和配置nginx和keepalived(文章过会补。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。)

2.编写shell脚本,实现nginx服务器进程的高HA(什么是HA,注释1有解释)

    #!/bin/bash 
    while  : 
    do 
     nginxpid='ps -C nginx --no-header | wc -l'
     if [ $nginxpid -eq 0 ];then 
      /usr/local/nginx/sbin/nginx 
      sleep 5 
      nginxpid='ps -C nginx --no-header | wc -l'
      echo $nginxpid 
        if [ $nginxpid -eq 0 ];then 
     /etc/init.d/keepalived stop 
       fi 
     fi 
     sleep 5 
    done 
这是无限循环的脚本(这里并不是死循环),放在主nginx机器上(目前主要有它提供负载均衡服务),

ps -C nginx --no-header | wc -l 命令收集nginx的PID的值,如果该值为0的话,表示nginx进程已经死掉,尝试启动nginx进程

/usr/local/nginx/sbin/nginx(启动nginx进程,每个人启动nginx进程的路径可能不一样,根据自己的路径修改成相应的)

sleep 5 等5秒,查看nginx的PID的值,如果还是为0,表示nginx启动失败,关闭本机的keepalived进程 /etc/init.d/keealived stop

这样web网站就会由备用nginx来提供服务


注释1.什么是HA

HA是双机集群的简称

LATCH HA 是X0;linux Latch 系列的高可靠性的服务器集群系统解决方案

今天各行业的顺利运转都依赖于计算机系统。商品的订货、配送、客户服务、财务结算、保险及预约都需要高度可靠的信息服务系统。
这自然要求计算机的宕机时间越短越好。LATCH HA能够自动检测系统的故障。
同时,一旦发现计算机出现故障,LATCH HA将把该计算机上的所有进程转移到备份计算机上,从而为客户提供不间断的服务。

一旦计算机宕机,LATCH HA能够将宕机时间缩短到几分钟甚至几秒钟。而且能够将系统恢复到宕机以前的状态,从而保证计算机的稳定运行。
在LATCH HA的保护下,计算机系统再也不用因为硬件故障或日常性的维护而中断运行。
LATCH HA就是利用这些方法来提供最佳的服务可靠性,将计算机的宕机时间减少到最低程度。
要知道,一分钟的宕机时间也许会给银行,铁路,航空等行业的运营带来不可估量的损失。
 
还具有系统崩溃的智能检测与处理系统。她利用各种手段来检测硬件、存储设备、网络及系统软件的故障。
同时,一旦发现计算机出现故障, LATCH HA将把该计算机上的所有进程转移到备份计算机上,从而为客户提供不间断的服务。

高可用性的实现的另一大关键就是的冗余策略,简言之就是对主机,网络设备,备份设备的多台备份(当然不只是简单的备份机):
LATCH HA拥有多种冗余模式,其中包括双机在线待机模式、双机就绪模式及三机模式。
所有的模式都提供了对各种备份资源-如文件系统、数据库、网络IP地址、系统进程、SCSI设备及NFS-的支持。 

此外,高可用性的实现还要有丰富的应用程序支持: 
LATCH HA能够应用在各种集中式、客户机-服务器模式或OLTP系统中。
同时其与市场上各种主流的数据库系统与OLTP软件-如Oracle、 SYBASE、 Informix与Tuxedo-也都保持兼容。
LATCH HA同时提供了各种应用程序接口。因此,客户能够在其私有软件中集成各种功能来保证系统的高可靠性,这样也保护了客户的投资。

了解即可


另外这里有几个地方,备用nginx为何不加一个如上的shell,等待5秒中会不会太少,这个要等各位同学考虑。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章