zoukankan      html  css  js  c++  java
  • 02linux架构-keeplive+LVS-DR集群

    Keepalived介绍

    keepalived 是一个类似于 layer3, 4 & 5 交换机制的软件,也就是我们平时说的第 3 层、第 4 层和第 5层交换。 Keepalived 的作用是检测 web 服务器的状态,如果有一台 web 服务器死机,或工作出现故障,Keepalived 将检测到,并将有故障的 web 服务器从系统中剔除,当 web 服务器工作正常后 Keepalived 自动将web 服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web 服务器。

    拓展:OSI七层 

    拓展:OSI七层相关协议

     

    Keepalived工作原理

    Layer3,4&5 工作在 IP/TCP 协议栈的 IP 层, TCP 层,及应用层,。

    Layer3: Keepalived 使用 Layer3 的方式工作式时, Keepalived 会定期向服务器群中的服务器发送一个 ICMP 的数据包(既我们平时用的 Ping 程序) , 如果发现某台服务的 IP 地址没有激活,Keepalived 便报告这台服务器失效,并将它从服务器群中剔除,这种情况的典型例子是某台服务器被非法关机。 Layer3 的方式是以服务器的 IP 地址是否有效作为服务器工作正常与否的标准。

    Layer4: 主要以 TCP 端口的状态来决定服务器工作正常与否。如 web server 的服务端口一般是80,如果 Keepalived 检测到 80 端口没有启动,则 Keepalived 将把这台服务器从服务器群中删除。

    Layer5: Layer5 就是工作在具体的应用层了,比 Layer3,Layer4 要复杂一点,在网络上占用的带宽也要大一些。 Keepalived 将根据用户的设定检查服务器程序的运行是否正常,如果与用户的设定不相符,则 Keepalived 将把服务器从服务器群中剔除。

    Keepalived的作用与构建

    1.管理 VIP    VIP 会在 LVS 之间漂移

    2.监控 LVS分发器

    运行在主分发的 Keepalived 会以组播的形式向网络中宣告自己,即主分发器还活着,备用节点能收到。当备用节点,在一个时间单位中收不到组播,备用节点会认为主 LVS 挂了,开始接手主分发器工作,把 VIP 配给自己。

    3.管理 RS

    Keepalived 会每隔一个时间段去做一次类似于访问的操作如:

    探针: elinks http://192.168.3.64 –dump

    经典高可用web架构: LVS+keepalived+nginx+apache+php+eaccelerator+nfs可选)

    http://www.keepalived.org/

    下载:http://www.keepalived.org/download.html

    使用Keepalived构建LVS-DR模式的高可用集群

    机器名称

    机器 IP

    网关

    机器作用

    LVS1.cn

    DIP:192.168.2. 62/24

    192.168.2.1

    主 LVS

    VIP:192.168.2.111/24

    LVS2.cn

    DIP:192.168.2.63/24

    VIP:192.168.2.111/24

    192.168.2.1

    备 LVS

    RS-WEB1.cn

    192.168.2.64/24

    192.168.2.1

    RS2

    WEB1

    RS-WEB2.cn

    192.168.2.65/24

    192.168.2.1

    RS1

    WEB2

     

     

     

     

     


     

    安装ipvsadm

    [root@LVS1 ~]# rpm -ivh /mnt/Packages/ipvsadm-1.27-7.el7.x86_64.rpm

    安装完成不需要做任何配置,启动方式由keepalived控制

    安装keepalived

    第一种安装方法:

    Yum install –y keepalived

    查看安装路径:

    rpm -ql keepalived-1.3.5-1.el7.x86_64

    第二种安装方法(源码安装)

    [root@LVS1 ~]# tar zxvf keepalived-1.2.16.tar.gz

    [root@LVS1 ~]# cd keepalived-1.2.16

    解决依赖

    [root@LVS1 ~]# yum -y install gcc openssl-devel libnfnetlink-devel

    [root@LVS1 keepalived-1.2.16]# ./configure --prefix=/usr/local/keepalived

    ……

    Keepalived configuration

    ------------------------

    Keepalived version       : 1.2.16

    Compiler                 : gcc

    Compiler flags           : -g -O2

    Extra Lib                : -lssl -lcrypto -lcrypt

    Use IPVS Framework       : Yes

    IPVS sync daemon support : Yes

    IPVS use libnl           : No

    fwmark socket support    : Yes

    Use VRRP Framework       : Yes

    Use VRRP VMAC            : Yes

    SNMP support             : No

    SHA1 support             : No

    Use Debug flags          : No

     [root@LVS1 keepalived-1.2.16]# make && make install

    拓展:VRRP/HSRP

    虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)是由IETF提出的解决局域网中配置静态网关出现单点失效现象的路由协议。使用组播方式通信。

    VRRP是一种路由容错协议,也可以叫做备份路由协议。一个局域网络内的所有主机都设置缺省路由(默认网关),当网内主机发出的目的地址不在本网段时,报文将被通过缺省路由发往外部路由器,从而实现了主机与外部网络的通信。当缺省路由器down掉(即端口关闭)之后,内部主机将无法与外部通信,如果路由器设置了VRRP时,那么这时,虚拟路由将启用备份路由器,从而实现全网通信。

    工作流程如图:

    HSRP:热备份路由器协议(HSRP)的设计目标是支持特定情况下 IP 流量失败转移不会引起混乱、并允许主机使用单路由器,以及即使在实际第一跳路由器使用失败的情形下仍能维护路由器间的连通性。换句话说,当源主机不能动态知道第一跳路由器的 IP 地址时,HSRP 协议能够保护第一跳路由器不出故障,是CISCO的私有协议!该协议中含有多台路由器,对应一个HSRP组。该组中只有一个路由器承担转发用户流量的职责,这就是活动路由器。当活动路由器失效后,备份路由器将承担该职责,成为新的活动路由器。这就是热备份的原理。

    HSRP和VRRP的区别:HSRP是cisco的专有协议.在Cisco的HSRP之后,internet工程任务小组(internet  engineering task force,IETF)也制定一种路由冗余协议:虚拟路由冗余协议(Virtual  Router  Redundancy  Protocol,VRRP),目前包括Csico在内的主流厂商均在其产品中支持VRRP协议!VRRP和HSRP也有很多不同。VRRP和HSRP 的一个主要的区别在安全方面:它允许参与VRRP组的设备间建立认证机制 。另一个主要区别 :VRRP中只有三种状态----初始状态(Initialize)、主状态(Master)、备份状态(Backup),而HSRP 有六种状态。其余在报文类型 、报文格式和通过TCP而非UDP发送的报文方面也有所不同

    了解keepalived的文件

    [root@LVS1 keepalived-1.2.16]# cd /usr/local/keepalived/

    [root@LVS1 keepalived]# ll

    bin  

    etc  

    sbin  

    share

    #etc下有配置文件etc/keepalived/keepalived.conf

    建立启动脚本

    [root@LVS1 keepalived]# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/

    [root@LVS1 keepalived]# grep "chkconfig" /usr/local/keepalived/etc/* -R –color //不知道脚本位置,搜索chkconfig字段的文件可以找到!

    /usr/local/keepalived/etc/rc.d/init.d/keepalived:# chkconfig: - 21 79

    [root@LVS1 keepalived]# chmod +x /etc/init.d/keepalived

    因为我们使用非默认路径(/usr/local)安装 keepalived, 故需要修改几处路径,以保证 keepalived 能正常启劢, 需要修改的文件如下:

    [root@LVS1 keepalived]# vim /etc/init.d/keepalived

    #. /etc/sysconfig/keepalived                            #此行注释

    . /usr/local/keepalived/etc/sysconfig/keepalived           #此两行添加

    export PATH="$PATH:/usr/local/keepalived/sbin"    #将 keepavlied 主程序所在路径导入到环境变量 PATH 中

    [root@LVS1 keepalived]# vim /usr/local/keepalived/etc/sysconfig/keepalived

    KEEPALIVED_OPTIONS="-D"

    #改为

    KEEPALIVED_OPTIONS="-D -f /usr/local/keepalived/etc/keepalived/keepalived.conf"

    #修改指定 keepalived 要加载的配置文件,设置正确的服务启动参数

     [root@LVS1 keepalived]# ip addr

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1

        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

        inet 127.0.0.1/8 scope host lo

           valid_lft forever preferred_lft forever

        inet6 ::1/128 scope host

           valid_lft forever preferred_lft forever

    2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

        link/ether 00:0c:29:89:ac:42 brd ff:ff:ff:ff:ff:ff

        inet 192.168.2.62/24 brd 192.168.2.255 scope global ens32

           valid_lft forever preferred_lft forever

        inet 192.168.2.111/32 scope global ens32

           valid_lft forever preferred_lft forever

    配置Keepalived+LVS-DR模式

    在这种模式下,虚拟 IP 在某时刻只能属于某一个节点,另一个节点作为备用节点存在。当主节点不可用时,备用节点接管虚拟 IP,提供正常服务。

    配置参数: 节点 LVS1(主节点); 节点 LVS2(备用节点) ;  虚拟 IP 192.168.2.111对外提供服务的 IP。 要求默认情况下由节点 LVS1提供服务,当节点 LVS1 不可用时,由节点 LVS2 提供服务(即虚拟 IP 漂移至节点 LVS2)。

    主节点LVS1.cn配置

    [root@LVS1 keepalived]# cp keepalived.conf keepalived.conf.bak

    [root@LVS1 ~]# vim  /etc/keepalived/keepalived.conf

     

    global_defs {

       notification_email {

         root@localhost                         #默认三个地址,修改可用地址

       }

       notification_email_from root@localhost

       smtp_server localhost

       smtp_connect_timeout 30

       router_id LVS1                       #标识当前节点名字,两个节点的此项需要不相同。

    }

    #默认的配置文件中,使用第三方 smtp 服务器,但这在现实中几乎没有意义,发不出邮件,我们将其挃定为 localhost, 我们也可以将通知信息的发送交给本地 sendmail 服务处理。

    vrrp_instance apache {  #定义一个实例,一个集群就是一个实例。 默认VI_1 可以随意改

        state MASTER        #指定 A 节点为主节点 备用节点上设置为 BACKUP 即可

        interface eth0          #绑定虚拟 IP 的网络接口

        virtual_router_id 51    #VRRP 组名,两个节点的设置必须一样,以指明各个节点属于同一 VRRP 组

        priority 100            #主节点的优先级(1-254 之间),备用节点必须比主节点优先级低

        advert_int 1             #组播信息发送间隔,两个节点设置必须一样

        authentication {         #设置验证信息,两个节点必须一致

            auth_type PASS

            auth_pass 1111

        }

        virtual_ipaddress {

            192.168.2.111        #指定虚拟 IP, 两个节点设置必须一样

        }

    }

    #类似添加虚拟一个服务 ipvsadm -A -t 192.168.1.70:80 -s rr

    virtual_server 192.168.2.111 80 {    #对虚拟IP63添加LVS相关内容

        delay_loop 6                    #Keepalived 多长时间监测一次 RS

        lb_algo rr                      #分发算法

        lb_kind DR                      #DR 模式

        nat_mask 255.255.255.0

        persistence_timeout 50  #同一 IP 50秒内的请求都发到同个real server ,这个会影响LVS的 rr 调度算法, 同一 IP 超过 50 秒后,再次访问,才会被转发到另一台 real server 上。 persistence 持久性的意思

        protocol TCP

    # ipvsadm -a -t 192.168.2.111:80 -r 192.168.2.64 -g 添加的内容,类似这条命令

    # ipvsadm -a -t 192.168.2.111:80 -r 192.168.2.65 –g 添加的内容,类似这条命令

        real_server 192.168.1.64 80 { #配置服务节点 1,需要指定 realserver 的真实 IP 地址和端口,IP不端口之间用空格隔开

            weight 1    #配置服务节点的权值,权值大小用数字表示,数字越大,权值越高,设置权值大小可以为不同性能的服务器  

            TCP_CHECK {     #这段内容手动添加,爸以前的内容删除

                    connect_timeout 3       #表示 3 秒无响应超时

                    nb_get_retry 3          #表示重试次数

                    delay_before_retry 3    #表示重试间隔

                    connect_port 80         #检测端口

                    }

        }

        real_server 192.168.1.65 80 {

            weight 1

            TCP_CHECK {

                    connect_timeout 3

                    nb_get_retry 3

                    delay_before_retry 3

                    connect_port 80

                    }

        }

    }

    #默认配置文件中还有两个 virtual_server 模版,把剩下的都删除了,就可以。 如:

    #virtual_server 10.10.10.2 1358 {  。。。 }

    #virtual_server 10.10.10.3 1358 {  。。。 }

    [root@LVS1 keepalived]# systemctl restart keepalived

    [root@LVS1 keepalived]# systemctl enable keepalived

    [root@LVS1 keepalived]# ipvsadm -L –n

    IP Virtual Server version 1.2.(size=4096)

    Prot LocalAddress:Port Scheduler Flags

      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

    #注:没有看到 realserver,是因为两台 realserver 还没有开启 httpd 服务。

    备用节点LVS2.cn配置

    安装ipvsadm

    [root@LVS2 ~]# rpm -ivh /mnt/Packages/ipvsadm-1.27-7.el7.x86_64.rpm

    安装完成不需要做任何配置,启动方式由keepalived控制

    安装keepalived

    第一种安装方法:

    Yum install –y keepalived

    和主节点LVS1配置差不多相同,直接从LVS1上scp拷贝配置文件

    [root@LVS1 ~]# scp /etc/keepalived/keepalived.conf 192.168.2.63:/etc/keepalived/

    复制过来之后,还要做一定的修改:

     [root@LVS2~]#  vim /etc/keepalived/keepalived.conf

    注:红色为改动项值

     router_id LVS2   #运行 keepalived 的机器标示符

    }

    vrrp_instance apache {

        state BACKUP            #当前 LVS 状态为备用分发器

        interface ens32

        virtual_router_id 51

        priority 90             #LVS 优先级,备的要比主的小

    ……

    启动:

    [root@LVS2 keepalived]# systemctl restart keepalived

    [root@LVS2 keepalived]# systemctl enable keepalived

    测试LVS IP飘移

    [root@LVS1 keepalived]# systemctl stop keepalived

    [root@LVS2 keepalived]# ip addr

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1

        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

        inet 127.0.0.1/8 scope host lo

           valid_lft forever preferred_lft forever

        inet6 ::1/128 scope host

           valid_lft forever preferred_lft forever

    2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

        link/ether 00:0c:29:89:ac:42 brd ff:ff:ff:ff:ff:ff

        inet 192.168.2.63/24 brd 192.168.2.255 scope global ens32

           valid_lft forever preferred_lft forever

        inet 192.168.2.111/32 scope global ens32

           valid_lft forever preferred_lft forever

     [root@LVS2 keepalived]# ipvsadm -L –n

    IP Virtual Server version 1.2.(size=4096)

    Prot LocalAddress:Port Scheduler Flags

      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

    TCP  192.168.2.111:80 rr persistent 50

    #看到192.168.1.63飘移过来了,就证明一切正常了

    配置RS1

    [root@RS-WEB1 ~]# vim /etc/init.d/lvsrsdr    #写一个配置RS的脚本

    #!/bin/bash

    #description:start relserver

    VIP=192.168.2.111

    source /etc/init.d/functions                #加载环境变量(可以加载所有的环境变量)

    case $1 in

    start)

            echo 'start LVS of Realserver DR'

            /sbin/ifconfig lo:1 $VIP broadcast $VIP netmask 255.255.255.255 up

            /sbin/route add -host $VIP dev lo:1

            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

            ;;

    stop)

            /sbin/ifconfig lo:1 down

            echo 'Close LVS of Realserver DR'

            echo '0' > /proc/sys/net/ipv4/conf/lo/arp_ignore

            echo '0' > /proc/sys/net/ipv4/conf/lo/arp_announce

            echo '0' > /proc/sys/net/ipv4/conf/all/arp_ignore

            echo '0' > /proc/sys/net/ipv4/conf/all/arp_announce

            ;;

    *)

            echo "Usage:$0 (start|stop)"

    exit 1

    esac

     

     

    [root@RS-WEB1 ~]# chmod +x /etc/init.d/lvsrsdr

    [root@RS-WEB1 ~]# /etc/init.d/lvsrsdr start

    [root@RS-WEB1 ~]# echo "/etc/init.d/lvsrsdr start" >> /etc/rc.local

    [root@RS-WEB1 ~]# ifconfig -a

    ……………………………………………………………………………………….

        lo:1: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536

            inet 192.168.2.111  netmask 255.255.255.255

            loop  txqueuelen 1  (Local Loopback)

    [root@RS-WEB1 ~]# yum install -y httpd

    [root@RS-WEB1~]# echo 192.168.2.64 > /var/www/html/index.html

    [root@RS-WEB1 ~]# systemctl restart httpd

    配置RS2

    从RS-WEB1上拷贝脚本

    [root@RS-WEB1 ~]# scp /etc/init.d/lvsrsdr 192.168.2.65: /etc/init.d/   

    然后执行

    [root@RS-WEB2 ~]# chmod +x /etc/init.d/lvsrsdr

    [root@RS-WEB2 ~]# /etc/init.d/lvsrsdr start

    [root@RS-WEB2 ~]# echo "/etc/init.d/lvsrsdr start " >> /etc/rc.local

    [root@RS-WEB2 ~]# ifconfig -a

    ……………………………………………………………………………………….

        lo:1: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536

            inet 192.168.2.111  netmask 255.255.255.255

            loop  txqueuelen 1  (Local Loopback)

    [root@RS-WEB2 ~]# yum install -y httpd

    [root@RS-WEB2 ~]# echo 192.168.1.65 > /var/www/html/index.html

    [root@RS-WEB2 ~]# systemctl restart httpd

    测试

    http://192.168.2.111 #一直显示192.168.2.64的内容,等待50s之后,查看

    50s之前图

     

    50s之后图

     

    测试主备切换,首选在主上Xueogd62上查看状态

    [root@LVS1 keepalived]# ipvsadm -L -n

    IP Virtual Server version 1.2.1 (size=4096)

    Prot LocalAddress:Port Scheduler Flags

      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

    TCP  192.168.2.111:80 rr

      -> 192.168.2.64:80              Route   1      0          0         

      -> 192.168.2.65:80              Route   1      0          1    

    在备上查看LVS2的状态

    [root@LVS2 keepalived]# ipvsadm -L -n

    IP Virtual Server version 1.2.1 (size=4096)

    Prot LocalAddress:Port Scheduler Flags

      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

    LVS1上停掉keepalived, 模拟故障,在查看LVS2

    [root@LVS1 ~]# systemctl stop keepalived  

    [root@LVS2 keepalived]# ipvsadm -L –n

    P Virtual Server version 1.2.1 (size=4096)

    Prot LocalAddress:Port Scheduler Flags

      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

    TCP  192.168.2.111:80 rr

      -> 192.168.2.64:80              Route   1      0          0         

      -> 192.168.2.65:80              Route   1      0          0    

     [root@LVS2 keepalived]# ip addr

    ……

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1

        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

        inet 127.0.0.1/8 scope host lo

           valid_lft forever preferred_lft forever

        inet6 ::1/128 scope host

           valid_lft forever preferred_lft forever

    2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

        link/ether 00:0c:29:89:ac:42 brd ff:ff:ff:ff:ff:ff

        inet 192.168.2.63/24 brd 192.168.2.255 scope global ens32

           valid_lft forever preferred_lft forever

        inet 192.168.2.111/32 scope global ens32

           valid_lft forever preferred_lft forever

        inet6 fe80::977:7b97:b1d1:2176/64 scope link

           valid_lft forever preferred_lft forever

    从日志看:

    [root@LVS2 keepalived]# tailf /var/log/messages

     

    当我们重启了主上的keepalived,自动从备分发器转到主分发器上。因为备的优先级低。

    [root@LVS1 ~]#  systemctl restart keepalived

    测试RS容错,停掉Xueogd65httpd之后LVS1查看

    [root@LVS1 keepalived]# ipvsadm -L -n

    IP Virtual Server version 1.2.1 (size=4096)

    Prot LocalAddress:Port Scheduler Flags

      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

    TCP  192.168.2.111:80 rr

      -> 192.168.2.64:80              Route   1      0          0   

    打开主 LVS 的日志(/var/log/message),看到滚动 LVS 中移除192.168.2.65。 

    使用 ipvsadm -Ln 可以看到刚才关闭的那台机器的 IP不在列表中了。

    keepalived 主从优先级一样时,当主恢复后,还是要回切资源的。第一次建立主从关系时,需要10s 左右的认证时间。

     

    附件:一个配置文件模板详解

    ! Configuration File for keepalived

    global_defs {

       notification_email {

         root@localhost                       #设置报警邮件地址,即收件人地址

       }

       notification_email_from admin@localhost  #设置邮件的发送地址

       smtp_server 127.0.0.1                    #设置smtp server的ip地址

       smtp_connect_timeout 30                  #设置连接smtp server的超时时间

       router_id LTT                            #表示运行keepalived服务器的一个标识名字可以随便取,名字会显示在发邮件时邮件的主题信息

    }

    vrrp_instance IN_1 {

        state MASTER                  #指定keepalived的角色,此服务为master

        interface ens160                        #指定监测网络的接口

        virtual_router_id 22                    #虚拟路由的标识

        priority 100                            #定义优先级,数字越大优先级越高,1-255之间

        advert_int 1                            #设置同步检查的时间间隔,单位是秒

        authentication {                        #设置验证类型

            auth_type PASS                      #验证类型为PASS

            auth_pass aaaa                      #验证的密码

        }

        virtual_ipaddress {

            192.168.2.111                        #设置虚拟IP

        }

    }

    virtual_server 192.168.2.111 80 {            #定义虚拟服务器,需指定虚拟ip和端口

        delay_loop 6                            #设置健康检查时间,单位为秒

        lb_algo wlc                             #设置负载调度算法,此处为加权轮叫算法

        lb_kind DR                              #设置LVS实现负载均衡的模式

        persistence_timeout 120                 #设置会话持续时间

        nat_mask 255.255.255.0                  # 设置子网掩码

        protocol TCP                            #设置转发协议的类型

        real_server 192.168.2.64 80 {           #定义realserver,需指定ip和端口

            weight 1                            #指定权重

            HTTP_GET {                          #设置检测后端realserver的方式为获取http协议报文

                url {

                  path /

                  status_code 200               #状态码为200则证明后端服务器是在线的

               }

                connect_timeout 3               #设置超时时间

                nb_get_retry 3                  #设置超时时候重试几次

                delay_before_retry 3            #在重试的时候的时间间隔

            }

        }

    virtual_server 192.168.2.111 8090 {          #定义虚拟服务器,需指定虚拟ip和端口

        delay_loop 6                            #设置健康检查时间,单位为秒

        lb_algo wlc                             #设置负载调度算法,此处为加权轮叫算法

        lb_kind DR                              #设置LVS实现负载均衡的模式

        persistence_timeout 120                 #设置会话持续时间

        nat_mask 255.255.255.0                  #设置子网掩码

        protocol TCP                            #设置转发协议的类型

        real_server 192.168.2.90 80 {           #定义realserver,需指定ip和端口

            weight 1                            #指定权重

            HTTP_GET {               #设置检测后端realserver的方式为获取http协议报文

                url {

                  path /

                  status_code 200     #状态码为200则证明后端服务器是在线的

               }

                connect_timeout 3             #设置超时时间

                nb_get_retry 3                 #设置超时时候重试几次

                delay_before_retry 3            #在重试的时候的时间间隔

            }

    }

    }

  • 相关阅读:
    1093 Count PAT's(25 分)
    1089 Insert or Merge(25 分)
    1088 Rational Arithmetic(20 分)
    1081 Rational Sum(20 分)
    1069 The Black Hole of Numbers(20 分)
    1059 Prime Factors(25 分)
    1050 String Subtraction (20)
    根据生日计算员工年龄
    动态获取当前日期和时间
    对计数结果进行4舍5入
  • 原文地址:https://www.cnblogs.com/hackerlin/p/11377168.html
Copyright © 2011-2022 走看看