nginx配置keepalived(服务器的心跳检测系统)

简介

         Keepalived的作用是检测服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。

配置

主服务器ip:192.168.1.148

副服务器ip:192.168.1.127

虚拟ip:192.168.200.25

一.下载keepalved安装包,安装

  你可以从官网下选择自己下载的版本点击打开链接,嫌麻烦的话可以直接执行以下命令:

cd /home 
mkdir keep  #为了不让安装的文件太乱,我在home目录下建了一个文件夹
cd keep
wget http://www.keepalived.org/software/keepalived-1.2.2.tar.gz  
tar -zxvf keepalived-1.2.2.tar.gz
cd keepalived-1.2.2
./configure --prefix=/home/keep/keepalived-1.2.2  #进入配置文件进行配置,/home/keep是你文件路径
make && make install

补充: 在大家进行./configure  有的机器会报错,这里为大家提供一个简单的解决方案。

1.遇到keepalived执行./configure --prefix=/usr/local/keepalived时报错:configure: error: Popt libraries is required

 解决方法:  
yum install popt-devel  #安装好popt的开发包。
重新./configure 即可。
二.安装到系统,默认的启动脚本里写的是系统路径,所以需要拷贝一些文件到系统目录下

 $ cp /home/keep/keepalived-1.2.2/etc/rc.d/init.d/keepalived /etc/init.d/
 $ cp /home/keep/keepalived-1.2.2/sbin/keepalived /usr/sbin/
 $ cp /home/keep/keepalived-1.2.2/etc/sysconfig/keepalived /etc/sysconfig/
 $ mkdir -p /etc/keepalived/
 $ cp /home/keep/keepalived-1.2.2/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf 

三.测试一下keepalived是否已经安装好

cd /etc/init.d/       #进入目录
sh keepalived start   #启动
sh keepalived stop    #停止
sh keepalived restart #重启
(以上步骤在主服务器和副服务器上都要进行操作)

四.修改服务器配置文件

  1.修改主服务器

vim /etc/keepalived/keepalived.conf  #进入配置文件
vrrp_instance VI_1 {
    state MASTER           #主服务器默认为master
    interface eno16777736  #绑定虚拟IP的网络接口  
    virtual_router_id 51   #设置验证信息,和slave一样
    priority 100           #主机高于slave
    advert_int 1           #检测服务器状态间隔时间
    authentication {
        auth_type PASS
        auth_pass 1111    #设置密码最好复杂点,以免冲突
    }
    virtual_ipaddress {
        192.168.1.223 #虚拟IP地址,可以为多个
    }
}
sh keepalived restart #重启


   2.修改副服务器

vim /etc/keepalived/keepalived.conf  #进入配置文件
vrrp_instance VI_1 {
    state  SLAVE           #副服务器为slave
    interface eno16777736  #绑定虚拟IP的网络接口  
    virtual_router_id 51   #设置验证信息,和master一样
    priority 80           #副机低于master
    advert_int 1           #检测服务器状态间隔时间
    authentication {
        auth_type PASS
        auth_pass 1111    #设置密码最好复杂点,以免冲突
    }
    virtual_ipaddress {
        192.168.1.223 #虚拟IP地址,可以为多个
    }
}
sh keepalived restart #重启


五.测试       1.主机
   ip addr #测试主机上的keepalived是否已绑定虚拟ip
      如果成功,则显示如下情况:
   
                                                                                (图1)
     用ip测试访问时候,会显示两个ip,一个本服务ip,另一个是虚拟ip
   
    2.副服务器
   ip addr #测试副机上状态是否成功,当主机存在时,副机则不显示虚拟ip
      如果成功,则显示如下情况:
    
                                                                              (图2)
     3.进入你的mysql根目录下,我的是 /var/www/html,建一个index.php(默认访问文件,两台服务器都执行),并设置不同内容
     4.访问你定义的虚拟ip地址192.168.1.223,这时候会显示你主机index.php所显示内容
     5.关闭主服务器的keepalived,即演示当主服务器down掉时,keepalived是否会起到监听作用,立刻切换到副服务器
   ps aux|grep keepalived  #查看keepalived进程
   killall keepalived      #关闭所有进程
   ps aux|grep keepalived  #再看一下是否已关闭
      这时候用 ip addr 访问,就显示图2内容,只显示本机ip;
     6.访问副机ip ,ip addr ,这时候显示图1内容,即显示本机ip,又显示虚拟ip, 说明keepalived已起到作用,现已切换到副服务器.
     7..再次访问你定义的虚拟ip地址192.168.1.223,这时候会显示你副机index.php所显示内容
这样,你的keepalived就已经安装成功了,为自己庆祝一下吧奋斗奋斗
(若副服务器显示不成功,一般是配置问题,或者主服务器keepalived进程没杀死的原因,大家再研究一下吧)






阅读更多
换一批

没有更多推荐了,返回首页