• LVS(DR)+keeplived


    1. DS:Director Server。              指的是前端负载均衡器节点。
    2. RS:Real Server。                   后端真实的工作服务器。
    3. VIP:                                         向外部直接面向用户请求,作为用户请求的目标的IP地址。
    4. DIP:Director Server IP,         主要用于和内部主机通讯的IP地址。
    5. RIP:Real Server IP,              后端服务器的IP地址。
    6. CIP:Client IP,                        访问客户端的IP地址。

     第一部分:

    实验环境:

    系统版本linux7.2

    DS:192.168.1.100

    RS:192.168.1.200(serverA)     192.168.1.201(serverB)

    客户端 :192.168.1.3(用于验证)

    1,首先两台RS安装web服务器,这里使用nginx:

    rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

    yum install nginx

    nginx 

    修改默认index文件,区分两台RS

    nginx  -s reload 重载配置,客户端访问:

    2,配置DS服务器(192.168.1.100)

    加载LVS内核模块

    LVS现在已经成为LINUX内核的一部分,默认编译为ip_vs模块,必要时能够自动调用,

        modprobe ip_vs   手动加载ip_vs模块

        cat /proc/net/ip_vs

        

    安装管理软件ipvsadm,不需要启动

        rpm -ivh /mnt/Packages/ipvsadm-1.27-7.el7.x86_64.rpm

        下载地址http://www.linuxvirtualserver.org/software/ipvs.html#kernel-2.6

    创建调度脚本

     #!/bin/bash

    #
    ifconfig ens33:0 192.168.1.10 broadcast 192.168.1.10 netmask 255.255.255.255 up
    route add -host 192.168.1.10 dev ens33:0
    ipvsadm –C
    ipvsadm -A -t 192.168.1.10:80 -s rr
    ipvsadm -a -t 192.168.1.10:80 -r 192.168.1.200:80 –g
    ipvsadm -a -t 192.168.1.10:80 -r 192.168.1.201:80 –g
    ipvsadm –Ln

    chmod +x dr.sh

    sh dr.sh

         

     ifconfig 

        

    3,配置两台web服务器

    vim  web_dr.sh

    #!/bin/bash
    #haha
    ifconfig lo:0 192.168.1.10 broadcast 192.168.1.10 netmask 255.255.255.255 up
    route add -host 192.168.1.10 dev lo:0
    echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
    echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
    echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
    echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
    sysctl -p &>/dev/null

    执行脚本

    ifconfig

        

    4,测试

    备注:

          arp_ignore和arp_annonuce参数参考https://www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html

    第二部分: +keepalievd     

    环境:

    系统版本linux7.2

    DS:192.168.1.100(主)   192.168.1.99(备)

    RS:192.168.1.200(serverA)     192.168.1.201(serverB)

    yum install keepalived  (两节点)

    vim /etc/keepalived/keepalived.conf

    global_defs {
       notification_email {
         acassen@firewall.loc        #报警接收人,多个写多行
         failover@firewall.loc
         sysadmin@firewall.loc
       }
       notification_email_from ******@163.com      #报警发件人
       smtp_server   smtp.163.com   #发送email时使用的smtp服务器地址
       smtp_connect_timeout 30      #smtp超时时间
       router_id LVS_DEVEL         #标识,发邮件的主题信息
    }
    
    vrrp_instance VI_1 {
        state MASTER      #指定keepalived的角色,MASTER表示此主机是主服务器,BACKUP表示此主机是备用服务器
        interface ens33      #指定HA监测网络的接口
        virtual_router_id 51    #虚拟路由标识,即同一vrrp_instance下,MASTER和BACKUP必须是一致的
        priority 100      #定义优先级,数字越大,优先级越高,在同一个vrrp_instance下,MASTER必须大于BACKUP
        advert_int 1      #定MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
        authentication {   
            auth_type PASS    #设置验证类型,主要有PASS和AH两种
            auth_pass 1111   #设置验证密码,在同一个vrrp_instance下,MASTER与BACKUP必须使用相同的密码才能正常通信
        }
        virtual_ipaddress {
            192.168.1.10    #设置虚拟IP地址,可以设置多个虚拟IP地址,每行一个
        } 
    }
    
    virtual_server 192.168.1.10 80 {       设置虚拟服务器,需要指定虚拟IP地址和服务端口
        delay_loop 6        #设置运行情况检查时间,单位是秒
        lb_algo rr           #设置负载调度算法,这里设置为rr,即轮询算法
        lb_kind DR           #设置LVS实现负载均衡的机制,有NAT、TUN、DR三个模式可选
        persistence_timeout 0      #会话保持时间,单位是秒。这个选项对动态网页是非常有用的,为集群系统中的session共享提供了一个很好的解决方案。
        protocol TCP        #指定转发协议类型,有TCP和UDP两种
    
        real_server 192.168.1.200 80 {
            weight 1
            TCP_CHECK {
                connect_timeout 10
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
            }
        }
    
        real_server 192.168.1.201 80 {
            weight 1
            TCP_CHECK {
                connect_timeout 10
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
            }
        }
    }

     拷贝主节点的配置文件keepalived.conf,然后修改如下内容:

    state MASTER -> state BACKUP
    priority 100 -> priority 90
    router_id LVS2

    测试两台分别停掉keepalived,是否能访问正常
    ipaddr

    
    
    
    
    
  • 相关阅读:
    进入Docker 报错
    Oauth一直无限重定向
    jquery.click() not working in iOS
    IOS 系统 form 表单提交的问题;一直当前页面刷新
    Word 搜索功能显示bug
    百度脑图bug
    微信分享链接添加参数后缩略图不显示如何解决?
    微信分享到朋友圈 QQ空间 代码实现
    文献复现 | The support of human genetic evidence for approved drug indications
    生物医药领域 | 知名投资人 | VC | PE | IBD | 公募 | 私募
  • 原文地址:https://www.cnblogs.com/shiji888/p/11005465.html
Copyright © 2020-2023  润新知