zoukankan      html  css  js  c++  java
  • keepalived

    一、关于本文

    本文记录使用keepalived搭建高可用nginx服务的过程。

    环境:

    两台配置好Nginx服务的主机,同一网段。

    二、步骤

    2.1 配置master服务器

      2.1.1 安装keepalived服务。

    [root@ruanwenwu-001 ~]# yum -y install keepalived
    已加载插件:fastestmirror, priorities
    base                                                            | 3.6 kB  00:00:00     
    file:///mnt/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /mnt/repodata/repomd.xml"

     2.1.2 配置keepalived配置文件

      /etc/keepalived/keepalived.conf

    ! Configuration File for keepalived
    
    global_defs {
       router_id lb01
    }
    
    vrrp_script check {     #定义脚本
       script "/usr/local/sbin/check_ng.sh" 
       interval 2    
       weight 2  
    }
    
    vrrp_instance VI_1 {
        state MASTER
        interface ens33
        virtual_router_id 51
        priority 150
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.38.139
        }
        track_script {     #调用脚本
           check
        }
    }

      注意看注释,重要的解释都在里面。

      我们在看虚拟ip的时候这样看:

      2.1.3 配置进程监控脚本/usr/local/sbin/check_ng.sh

    #!/bin/bash
    #时间变量,用于记录日志
    d=`date --date today +%Y%m%d_%H:%M:%S`
    #计算nginx进程数量
    n=`ps -C nginx --no-heading|wc -l`
    #如果进程为0,则启动nginx,并且再次检测nginx进程数量,
    #如果还为0,说明nginx无法启动,此时需要关闭keepalived
    if [ $n -eq "0" ]; then
            /etc/init.d/nginx start
            n2=`ps -C nginx --no-heading|wc -l`
            if [ $n2 -eq "0"  ]; then
                    echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
                    systemctl stop keepalived
            fi
    fi

      改变check_ng.sh的权限为755,其实就是为它增加可执行权限。

      2.1.4 开启keepalived服务

    [root@ruanwenwu-001 ~]# systemctl start keepalived
    [root@ruanwenwu-001 ~]# vim /var/log/messages
    [root@ruanwenwu-001 ~]# ps aux|grep keep
    root      10508  0.0  0.1 120228  1392 ?        Ss   17:37   0:00 /usr/sbin/keepalived -D
    root      10509  0.0  0.2 120228  2348 ?        S    17:37   0:00 /usr/sbin/keepalived -D
    root      10510  0.0  0.2 124484  2640 ?        S    17:37   0:00 /usr/sbin/keepalived -D
    root      10623  0.0  0.0 112680   972 pts/1    R+   17:37   0:00 grep --color=auto keep

    2.2 配置slave的keepalived

    ! Configuration File for keepalived
    
    global_defs {
       router_id lb01
    }
    
    vrrp_script check {     #定义脚本
       script "/usr/local/sbin/check_ng.sh" 
       interval 2    
       weight 2  
    }
    
    vrrp_instance VI_1 {
        state MASTER
        interface ens33
        virtual_router_id 51
        priority 150
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.38.139
        }
        track_script {     #调用脚本
           check
        }
    }

    我们发现,备的配置和主的配置只有3点不同。

    1.stat

    2.priority

    3.router_id

    三、访问测试

    现在我们在192.168.38.128上开启了Nginx服务,在192.168.38.129上也开启了nginx服务。修改服务器上的文件,让他们显示不同的内容。

    192.168.38.128上:

    192.168.38.129上:

    虚拟ip上:

        

    发现一切都跟我们预想的一样。那么,如果这时候,我们关闭192.168.38.128上的keepalived服务。看看。

    [root@ruanwenwu-001 html]# systemctl stop keepalived
    [root@ruanwenwu-001 html]# ps aux|grep keep
    root      17654  0.0  0.0 112680   972 pts/1    S+   18:16   0:00 grep --color=auto keep

    然后再通过虚拟ip访问:

     已经自动跳到bak机器192.168.38.129上了。keepalived配置成功!

  • 相关阅读:
    NYOJ47 过河问题
    CodeForces1165
    LuoGuP3667
    ZROI#958
    ZROI#957
    KMP小结
    LuoGuP2742[模板]二维凸包
    ZROI#999
    ZROI#997
    ZROI#996
  • 原文地址:https://www.cnblogs.com/doubilaile/p/8360884.html
Copyright © 2011-2022 走看看