zoukankan      html  css  js  c++  java
  • Nginx与keepalived实现高可用

    主keepalived设置

    #安装keepalived
    [root@localhost ~]# yum -y install keepalived
    #安装nginx
    [root@localhost ~]# yum -y install nginx
    ——————————————————————————————————
    #keepalived配置文件
    [root@localhost ~]# vim /etc/keepalived/keepalived.conf 
    ! Configuration File for keepalived
    
    global_defs {
       notification_email {
         acassen@firewall.loc
         failover@firewall.loc
         sysadmin@firewall.loc
       }
       notification_email_from Alexandre.Cassen@firewall.loc
       smtp_server 192.168.200.1
       smtp_connect_timeout 30
       router_id LVS_DEVEL
       vrrp_skip_check_adv_addr
       vrrp_strict
       vrrp_garp_interval 0
       vrrp_gna_interval 0
    }
    
    vrrp_script check_nginx {  #引入脚本文件
        script "/shell/nginx_check.sh"
        interval 2
        weight -20
    }
    
    vrrp_instance VI_1 {
        state MASTER   #主
        interface eno16777728 #心跳网卡
        virtual_router_id 51
        priority 100 #优先级
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.200.201
        }
        track_script {
        check_nginx     #引用脚本
        }
    }
    ______________________________________________________
    #装备测试文件
    [root@localhost ~]# echo "1111111" > /usr/share/nginx/html/index.html

    从keepalived设置

    #安装keepalived
    [root@localhost ~]# yum -y install keepalived
    #安装nginx
    [root@localhost ~]# yum -y install nginx
    ______________________________________________________________
    #keepalived配置文件
    [root@localhost ~]# vim /etc/keepalived/keepalived.conf 
    ! Configuration File for keepalived
    
    global_defs {
       notification_email {
         acassen@firewall.loc
         failover@firewall.loc
         sysadmin@firewall.loc
       }
       notification_email_from Alexandre.Cassen@firewall.loc
       smtp_server 192.168.200.1
       smtp_connect_timeout 30
       router_id LVS_DEVEL
       vrrp_skip_check_adv_addr
       vrrp_strict
       vrrp_garp_interval 0
       vrrp_gna_interval 0
    }
    
    vrrp_script check_nginx {
        script "/shell/nginx_check.sh"
        interval 2
        weight -20
    }
    
    vrrp_instance VI_1 {
        state BACKUP
        interface eno16777728
        virtual_router_id 51
        priority 90
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.200.201
        }
        track_script {
        check_nginx    
        }
    }
    
    ———————————————————————————————————
    #准备测试文件
    [root@localhost ~]# echo "22222" > /usr/share/nginx/html/index.html

    三、测试
    主服务器工作时
    在这里插入图片描述
    从服务器工作时
    在这里插入图片描述

    四、nginx_check.sh shell文件,配置为周期性任务

    #!/bin/bash
    count="$(ps -C nginx --no-header|wc -l)"
    
    if [ $count -eq 0 ];then
            systemctl restart nginx
            sleep 2
            if [ ps -c nginx --no-header|wc -l -eq 0 ];then
                    systemctl stop keepalived
            fi
    fi
    #给脚本加执行权限
    chmod +x /shell/nginx_check.sh
  • 相关阅读:
    Nodejs读取文件时相对路径的正确写法(使用fs模块)
    node 读取多个文件、合并多个文件、读写多个文件
    js中typeof用法详细介绍
    express源码分析之Router
    14 Django的用户认证组件
    13-1 jquery操作cookie
    13 Django组件- cookie与session
    12 Django组件-form组件
    11 Django组件-分页器
    10 Django与Ajax
  • 原文地址:https://www.cnblogs.com/canflyfish/p/11634958.html
Copyright © 2011-2022 走看看