zoukankan      html  css  js  c++  java
  • LVS+keepalived

    面试:nginx连接不上怎么排查 ? 可以通过写一个脚本,用crul -I IP地址
    查看返回信息的状态码,从而排查nginx连接不上的原因。
    介绍
    Keepalived软件起初是专门为LVS负载均衡软件设计的用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务的高可用解决方案软件。
    Keepalived软件主要是通过VRRP协议实现高可用功能的,VRRP是Virtual Router Redundancy Protocol(虚拟路由器冗余协议)的缩写.VRRP出现的目的就是为了解决静态路由单点故障问题的
    keepalived的三个核心模块
    core核心模块 chech健康监测  vrrp虚拟路由冗余协议
     Keepalived服务的三个重要功能
    支持故障自动切换    
    支持节点健康状态检查
    作为系统网络服务的高可用功能
    ===
    keepalived 的热备方式:VRRP协议(虚拟路由冗余协议)
    漂移地址  (VIP)
    ===============
    以下是keepalived抢占模式
    需要四台机器   master  backup web1 web2
    配置方法:
    主调度器(master)   
    [root@localhost ~]# yum -y install ipvsadm keepalived
    cp /etc/keepalived/keepalived.conf{,.bak}
    [root@localhost ~]# vim  /etc/keepalived/keepalived.conf
    ! Configuration File for keepalived
    global_defs {
       notification_email {
         assassin@111.com    //   收件人邮件地址
       }
       notification_email_from assassin@111.com    // 发件人地址
       smtp_server smtp.111.com     // 发件服务器地址
       smtp_connect_timeout 30      // 连接服务器超时时间
       router_id LVS_MASTER         // 虚拟路由标识  邮件标题
       vrrp_skip_check_adv_addr    
       vrrp_strict
       vrrp_garp_interval 0
       vrrp_gna_interval 0
    }
    vrrp_instance VI_1 {         // 虚拟实例   两台主机的实例名必须相同
        state MASTER         // 在实例中扮演的状态
        interface ens32        // 心跳接口(本身的网卡名)  //探测主机是否存活
        virtual_router_id 51   //  虚拟路由标识
        priority 100            // 优先级 根据优先级可以选择谁具有优先权这个与备的不能一样。备的要比主的低
        advert_int 1           // 心跳检测间隔
        authentication {        // 验证
            auth_type PASS    //  验证类型   PASS和AH  两种
            auth_pass 1111    //  验证密码
        }
        virtual_ipaddress {       //  设置虚拟IP地址
            192.168.200.254     
        }
    }   
     
    virtual_server 192.168.200.254 80 {   //  虚拟服务器   
        delay_loop 6         //  设置健康检查时间
        lb_algo rr             // 设置负载均衡算法
        lb_kind DR           //  设置LVS实现负载均衡的机制,有NET、TUN、DR三种
        protocol TCP           //  指定转发协议类型
        real_server 192.168.200.113 80 {      //节点服务器
            weight 1                     权重
    TCP_CHECK {                      节点的健康状态检测设置部分
                connect_timeout 3           3秒无响应超时
                nb_get_retry 3             重试次数
                delay_before_retry 3         重试间隔
        connect_port 80                测试连接的端口
            }
        }
        real_server 192.168.200.112 80 {  //节点服务器
            weight 1
            TCP_CHECK {
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
            }
        }
    }
     
    [root@localhost ~]# systemctl restart keepalived
    ip a  //查看会有两个IP
    ipvsadm -Ln 
     ===========
    在浏览器中进行检测192.168.200.254
    备调度器backup
    [root@localhost ~]# yum -y install ipvsadm keepalived
    [root@localhost ~]# vi /etc/keepalived/keepalived.conf
    ! Configuration File for keepalived
    global_defs {
       notification_email {
         assassin@111.com     
       }
       notification_email_from assassin@111.com   
       smtp_server dmtp.111.com    
       smtp_connect_timeout 30     
       router_id LVS_BACKUP    //这个值 与主的可以不一样作为区别主备      
       vrrp_skip_check_adv_addr    
       vrrp_strict
       vrrp_garp_interval 0
       vrrp_gna_interval 0
    }
    vrrp_instance VI_1 {      
        state BACKUP      
        interface ens32       
        virtual_router_id 51
        priority 90 
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.200.254     
        }
    }
     
    virtual_server 192.168.200.254 80 {   
        delay_loop 6
        lb_algo rr
        lb_kind DR
        protocol TCP
        real_server 192.168.200.113 80 {
            weight 1
    TCP_CHECK {
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
        connect_port 80
            }
        }
        real_server 192.168.200.112 80 {
            weight 1
            TCP_CHECK {
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
            }
        }
    }
    [root@localhost ~]# systemctl restart keepalived
    ===
    keepalived 非抢占模式
    两台LVS都作为备用的LVS
    vi /etc/keepalived/keepalived.conf
    vrrp_instance VI_1 {      
        state BACKUP      
        interface ens32       
        virtual_router_id 51
        priority 90 
        nopreempt     //添加一行   保存退出即可
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.200.254     
        }
    }
      重启keepalived服务
     =============================================

  • 相关阅读:
    Python 入门的一些练习题
    Parallel Data Augmentation for Formality Style Transfer 阅读
    Windows Internals 笔记——用户模式下的线程同步
    RSA算法原理(转)
    Ubuntu Git Server 搭建(Gitosis)
    Linux Make 报错:make: *** /lib/modules/3.10.0-1127.el7.x86_64/build: no such file or directory. stop.
    Centos 配置串口连接
    编写一个程序,将字符数组s2中的全部字符复制到字符数组s1中,不用strcpy函数。复制时,‘’也要赋值过去。''之后的字符不复制
    编写一个程序,将连个字符串s1和s2比较,如果s1 > s2,输出一个整数;若s1 = s2,输出0;若s1 < s2,输出一个负数。不要用strcpy函数。两个字符串用gets函数读入。输出的正数或负数的绝对值应是相比较的两个字符串相对应字符的ASCII码的差值。
    编一程序,将两个字符串连接起来,不要用strcat函数
  • 原文地址:https://www.cnblogs.com/elin989898/p/11943679.html
Copyright © 2011-2022 走看看