一、 集群介绍。 LB集群:lvs,nginx HA集群:keepalived,heartbeat,corosync,cman(红帽自带的集群rhcs) HP集群(高性能集群):很少使用HP集群,HP集群一般用在超级计算机国家级的地方。 HP集群相关概念:

Keepalived是轻量级的高可用套件,刚开始实现的目的是为了实现ipvs的高可用。heartbeat,corosync是重量级的高可用套件。

二、 keepalived介绍。 两种节点角色:Active/Passive(Backup)或者叫做Master/Slave HA集群的资源(resource):ip,存储(结构化存储【即MySQL等数据库存储的】,非结构化存储【即放在文件系统上的数据,例如应用程序】)。 Active和passive先通过ntp时间对时同步。像passive或active发送给对方的I am alive的信息就叫做heartbeat,做time sync。 HA主要通过资源配置实现的,例如HA一个director,高可用服务包括两个资源,vip和ipvs规则。哪一个节点是活动节点(active),哪一个就需要配置两个资源vip和ipvs规则。为了要对方不抢占资源,就需要一个解决方案,比如通过优先级实现。

三、 vrrp协议。 Vrrp(virtual route redundant protocol):虚拟路由冗余协议。

当vip转移时,从master主机转移到backup主机,vip对应的mac地址也随之改变,如果客户端之前已经缓存了vip的mac地址(即master的mac),vip转移后会出现访问问题,此时的解决方案有: One:当vip从master转移到backup后,backup的vip网卡就会自己广播自己的vip的mac,然后自己回答自己的mac(backup的vip的mac)和vip地址信息,网段内的其他主机听到后就会记录此时的vip对应的mac地址。 Two:vmac(虚拟mac),vmac地址的格式为00-00-5E-00-01-{VRID},

Master需要不停地往backup发送vrrp报文(heartbeat)和优先级。

Vrrp认证。(简单字符认证常见)

四、 对于lvs-nat模型,内网(dip)和外网(vip)的ip都需要流动,对于lvs-dr模型,只有外网(vip)的ip需要流动。原因是,lvs-nat的rip给cip响应时需要通过dip响应。Lvs-dr模型的rip给cip响应时,不经过director也就不需要经过dip,此时dr模型就只需要流动vip就可以。

五、 Keepalived介绍

Keepalived软件的内部架构

Vrrp stack:主要是对vrrp协议的实现的进程。(实现keepalived的主要部分) Checkers:健康状态监测。 IPVS wrapper:根据配置文件生成ipvs规则。(与ipvs接触) WatchDog:进程自己检查,监控vrrp进程,如果vrrp进程挂了,watchdog就会自己启动vrrp进程来继续使用。

六、 配置和使用keepalived。(linux是centos7作为实例进行演示) 对于centos6.4以后的版本,直接可以yum install keepalived来直接安装keepalived(只要配置好yum源就可以)。或者下载keepalived的tar源文件去编译和执行来安装keepalived。不过没必要这么做,最好直接去yum install keepalived就可以。 Keepalived的配置文件内容。(/etc/keepalived/keepalived.conf)

HA Cluster配置前提: 1、 本机主机名与hosts中定义的主机名保持一致,还要与hostname(uname -n)命令获得的名称保持一致; 修改主机名centos 6: /etc/sysconfig/network Centos 7:hostnamectl set-hostname HOSTNAME 各节点要能互相解析主机名,一般建议通过hosts文件进行解析; 2、 各节点时间同步; 3、 确保iptables和selinux不会成为服务的阻碍;

1 安装keepalived ]~ yum install keepalived

2 查看安装生成的文件。 ]~ rpm –ql keepalived

七、 实例演示keepalived。(node1:172.16.100.67,node2:172.16.100.68) 1 查看主机的系统版本号。(各节点都要查看) ]~ cat /etc/centos-release

2 查看主机名。(各节点都要查看) ]~ hostname

3 查看主机名对应的地址。(各节点都要查看) ]~ cat /etc/hosts

4 同步各节点的时间。(各节点都要同步时间)同步可以用ntp进行同步。 ]~ date

在node1节点上查看node2的时间。 ]~ date; ssh node2 ‘date’

注意:上面的]~ date; ssh node2 ‘date’ 命令执行不需要密码了,因为node1和node2已经做过基于秘钥的认证方式,所以不需要输入密码执行命令就可以显示出来。

Ntp同步(新能mes系统的ntp同步):

]~ vim /etc/crontab

客户端执行ntpdate命令来与ntp服务器(10.191.130.130为富鸿网时间服务器)对时。 ]~ ntpdate 10.191.130.130

5 安装keepalived软件。(各节点都要安装) ]~ yum –y install keepalived

6 配置keepalived的配置文件。 配置之前需要先备份配置文件 /etc/keepalived/keepalived.conf备份为/etc/keepalived/keepalived.conf.backup ]~ cd /etc/keepalived

]~ cp keepalived.conf{,.backup}

编辑配置文件/etc/keepalived/keepalived.conf;(马哥实例) 先配置node1(172.16.100.67)的keepalived配置文件。 ]~ vim /etc/keepalived/keepalived.conf

先注释掉virtual_server及以下的行,在vim编辑器里面,先找到virtual_server这一行,然后执行:.,$s/^/#/g 以下是/etc/keepalived文件里面执行注释掉virtual_server行及以下行。

! Configuration File for keepalived

global_defs { notification_email { root@localhost } notification_email_from kaadmin@localhost smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id node1.magedu.com vrrp_mcast_group4 224.18.0.100 }

vrrp_instance VI_1 { state MASTER interface eno16777736 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 8ab998cd } virtual_ipaddress { 172.16.100.80/16 } }

配置完node1的keepalived的配置文件后,配置node2的配置文件(在node1上执行scp复制配置文件给node2)。下面的node1上执行。 ]~ scp /etc/keepalived/keepalived.conf node2:/etc/keepalived

在node2上修改keepalived的配置文件。(以下在node2上执行) One:cd到keepalived目录

Two:编辑node2的配置文件 ]~ vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs { notification_email { root@localhost } notification_email_from kaadmin@localhost smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id node2.magedu.com #修改 vrrp_mcast_group4 224.18.0.100 }

vrrp_instance VI_1 { state BACKUP #修改 interface eno16777736 virtual_router_id 51 priority 99 #修改 advert_int 1 authentication { auth_type PASS auth_pass 8ab998cd } virtual_ipaddress { 172.16.100.80/16 } }

以下是新能mes的HA架构的/etc/keepalived配置文件。(环境VIP:10.210.104.10:8100 , mes_ap1:10.210.104.80:8100,mes_ap2:10.210.104.85:8100) ! 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_instance VI_1 { state MASTER interface eth0 virtual_router_id 80 priority 150 advert_int 5 authentication { auth_type PASS auth_pass 12345678 } virtual_ipaddress { 10.210.104.10 } track_interface { eth0 } notify_master "/etc/keepalived/notify.sh del 10.210.104.10" notify_backup "/etc/keepalived/notify.sh add 10.210.104.10" notify_fault "/etc/keepalived/notify.sh add 10.210.104.10" }

virtual_server 10.210.104.10 8100 { delay_loop 6 lb_algo wrr lb_kind DR persistence_timeout 60 protocol TCP

real_server <MES1 IP> 8100 {
    weight 5
    TCP_CHECK {
        connect_timeout 3
        nb_get_retry 3
        delay_before_retry 3
        connect_port 8100
    }

}

real_server <MES2 IP> 8100 { weight 1 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 8100 } }

}

virtual_server 10.210.104.10 8102 { delay_loop 6 lb_algo wrr lb_kind DR persistence_timeout 60 protocol TCP

real_server <MES1 IP> 8102 {
    weight 5
    TCP_CHECK {
        connect_timeout 3
        nb_get_retry 3
        delay_before_retry 3
        connect_port 8102
    }

}

real_server <MES2 IP> 8102 { weight 1 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 8102 } }

}

配置文件详解:/etc/keepalived/keepalived.conf global_defs { #做全局定义,如果任何一个node节点发生故障,或者因为其他原因导致的资源vip从一个节点转移到另一个节点上,那我们要通知给管理员,说我们的服务器发生故障,global_defs里面的定义主要是解决这样的问题; notification_email { #表示定义这些警告信息发送给以下三个邮箱; acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc #指明keepalived发送给上面三个邮箱的发件人名为Alexandre.Cassen@firewall.loc; smtp_server 192.168.200.1 #指明smtp邮件服务器的地址,由此服务器来发给上面三个邮箱; smtp_connect_timeout 30 #keepalived与smtp服务器连线时可能会有没办法连接等的问题,这里定义连线smtp服务器的超时时长; router_id LVS_DEVEL #定义当前的物理设备的唯一标示(此处最好改成主机名) vrrp_mcast_group4 224.0.0.18 #定义多播地址,如果同一网段内有多个ha架构就需要定义多播地址,防止各keepalived相互影响; }
vrrp_instance VI_1 { #做vrrp实例,叫做虚拟路由实例; state MASTER #自己的初始状态,只有两个,MASTER和BACKUP; interface eth0 #定义节点之间流动的ip配置的网卡; virtual_router_id 51 #虚拟路由器自己的id号,id要唯一; priority 100 #定义优先级(注意MASTER的优先级要高于BACKUP); advert_int 1 #主节点周期性向其他备用节点发送自己的心跳信息(包括自己的优先级,自己的状态信息),此处定义发送心跳信息的时长为1秒; authentication { #做认证,避免网段内有不是节点的充当节点来混乱集群(比如); auth_type PASS #此处认证是简单字符认证(认证方式有简单字符认证和MD5认证); auth_pass 1111 #认证的密码(可以用openssl rand -hex 4命令自动生成字符串做密码); } virtual_ipaddress { #定义虚拟ip地址; 172.16.100.80/16 dev eth0 label eth0:0 #配置虚拟ip地址,后面的/16和label可以不写,不写就默认为上面vrrp_instance VI_1里面的interface eth0这个网卡上; nopereempt #非枪战模式,默认为抢占模式(抢占模式为当原来的master有问题资源给backup,当原来的master上线没问题时,就会主动把资源抢过来); } }
下面为vrrp_ipaddress的man文档

7 启动keepalived服务 下面的centos7上在node1上执行来启动两个节点的keepalived服务。 Centos6:~] service keepalived start Centos7:~] systemctl start keepalived.service; ssh node2 ‘systemctl start keepalived.service’

8 利用ps –aux查看keepalived是否启动。 ]~ ps –aux

9 启动完keepalived后查看虚拟ip是否挂起。 ]~ ip addr list (或ip addr show 或 ip addr命令都可)

10 此时发现keepalived的log文件没有,就需要手动添加日志文件(-S为指定日志log-facility)(两个节点都要修改/etc/sysconfig/keepalived文件)(此步骤仅仅是打开keepalived的日志,不影响keepalived正常使用,此步骤不进行也可以)两个节点都要修改。

编辑keepalived的环境配置文件

编辑/etc/rsyslog.conf文件 ]~ vim /etc/rsyslog.conf 加上最后一行local3.* /var/log/keepalived.log

重启rsyslog服务。(以下是centos7) ]~ systemctl restart rsyslog.service

利用status查看rsyslog的状态(以下是没问题) ]~ systemctl status rsyslog.service

重启keepalived服务,让keepalived读取环境配置文件/etc/sysconfig/keepliaved Centos7:~] systemctl start keepalived.service; ssh node2 ‘systemctl start keepalived.service’

查看keepalived的日志文件。 ]~ tail –f /var/log/keepalived.log

11 手动调度资源在master和backup转移,重启keepalived服务不合适。(此处不影响keepalived的正常使用),只要在master的/etc/keepalived目录中touch一个down文件,master的weight就会-2,原来的master就会变为backup,因为master的weight为100,backup的weight为99。

在/etc/keepalived/keepalived.conf配置文件加入vrrp_script,还要在vrrp_instrance VI_1上调用此script(track_script)。

以下是script内容 vrrp_script chk_mantaince_down { script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0" interval 1 weight -2 }

以下是track_script内容。 track_script {
chk_mantaince_down }

修改完配置文件后重启keepalived服务 Centos7:~] systemctl start keepalived.service; ssh node2 ‘systemctl start keepalived.service’

在node1(master)172.16.100.67上查看虚拟ip地址是否在node1上。

想手动不停keepalived的服务的情况下,把ip转移到node2上,只需要在node1上创建/etc/keepalived/down文件。同时在node1上查看虚拟ip已经不在node1上了。

在node2上查看虚拟ip,发现虚拟ip已经转移到node2上了。

如果把node1的down文件删除(rm –f /etc/keepalived/down),此时node1就会把虚拟ip抢回来成为master,node2重新成为backup。

八、 Lvs-nat+keepalived架设 注意:lvs-nat配置的HA架构,需要VIP和dip的别名接口都要转移,就需要两个实例(vrrp instance),同一个vrrp同步组(vrrp synchronization group)。 以下是keepalived.conf的man文档。vrrp synchronization group的文档。

Lvs-nat+keepalived模型,当lvs的vip从master转移到backup时,对应的dip也要从master转移到backup。此时就需要vip的实例(vrrp_instance VI_1)和dip的实例(vrrp_instance VI_2)在一个同步组中(vrrp_sync_group VG_1)。只有在lvs-nat+keepalived模型下才会用到下面的同步组。 Vrrp_sync_group VG_1{ Group { VI_1 #外网ip对应的实例 VI_2 #内网ip对应的实例 } } Vrrp_instance VI_1{ eth0 vip } Vrrp_instance VI_2{ eth1 dip }

九、 配置lvs-nat+keepalived的双主模型实例。(结合上面的node1和node2,在此基础上进行修改)

注意,每个vrrp_instance需要专用的组播地址。做双主模型时global_defs里面不能加组播地址(vrrp_mcast_group4 224.18.0.100),因为其中一个实例(vrrp_instance)会默认一个组播地址224.0.0.22导致两个vrrp_instance不在同一个组播地上内。出现启动服务时只会启动其中一个实例(即只有一个虚拟ip在node节点上找到)。 1、 双主模型架构拓扑图。

2、 在node1上编辑keepalived的配置文件。 ]~ vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived

global_defs { notification_email { root@localhost } notification_email_from kaadmin@localhost smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id node1.magedu.com
}

vrrp_script chk_mantaince_down { script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0" interval 1 weight -2 }

vrrp_instance VI_1 { state MASTER
interface eno16777736 virtual_router_id 51 priority 100
advert_int 1 authentication { auth_type PASS auth_pass 8ab998cd } virtual_ipaddress { 172.16.100.80/16 } track_script { chk_mantaince } }

vrrp_instance VI_2 { #实例2与实例1不同地方 state BACKUP #实例2与实例1不同地方 interface eno16777736 virtual_router_id 61 #实例2与实例1不同地方 priority 99 #实例2与实例1不同地方 advert_int 1 authentication { auth_type PASS auth_pass 7bb962df #实例2与实例1不同地方 } virtual_ipaddress { 172.16.100.90/16 #实例2与实例1不同地方 } track_script { chk_mantaince } }

3、 把node1的配置文件scp给node2。 在node1上执行scp命令 ]~ scp /etc/keepalived/keepalived.conf node2:/etc/keepalived/

4、 编辑node2上的keepalived配置文件。 ]~ vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived

global_defs { notification_email { root@localhost } notification_email_from kaadmin@localhost smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id node2.magedu.com #node2与node1配置文件不同地方 }

vrrp_script chk_mantaince_down { script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0" interval 1 weight -2 }

vrrp_instance VI_1 { state BACKUP #node2与node1配置文件不同地方 interface eno16777736 virtual_router_id 51 priority 99 #node2与node1配置文件不同地方 advert_int 1 authentication { auth_type PASS auth_pass 8ab998cd } virtual_ipaddress { 172.16.100.80/16 } track_script { chk_mantaince } }

vrrp_instance VI_2 {
state MASTER #node2与node1配置文件不同地方 interface eno16777736 virtual_router_id 61
priority 100 #node2与node1配置文件不同地方 advert_int 1 authentication { auth_type PASS auth_pass 7bb962df
} virtual_ipaddress { 172.16.100.90/16
} track_script { chk_mantaince } }

5、 重启node1和node2的keepalived服务。(node1和node2是centos7) 下面的centos7上在node1上执行来启动两个节点的keepalived服务。 ~] systemctl start keepalived.service; ssh node2 ‘systemctl start keepalived.service’

6、 查看node1的地址。(ip addr list) Ip addr list命令后,会看到虚拟ip1(172.16100.80/16)的地址在node1的eno16777736网卡上。

7、 查看node2的地址。 ip addr list命令后,会看到虚拟ip2(172.16.100.90/16)的地址在node2的eno16777736网卡上。

如果以上的两个虚拟ip有问题,可以使用tcpdunp命令抓包查看。 例如以下就是因为在global_defs里面添加了vrrp_mcast_group4 224.18.0.100导致其中虚拟ip不能正常启动。检查方法:在node1(172.16.100.67)上执行tcpdump –I eno16777736 host 172.16.100.68。

8、 上面两个node节点的keepalived的配置文件中配置的不关闭服务,手动转移vip配置。配置vrrp_script chk_mantaince_down和两个vrrp instance里面的track_script {chk_mantaince}部分,测试方法。 One:在node1(172.16.100.67)上创建/etc/keepalived/down文件,让node1的虚拟ip下线(期间要等待几秒钟,vip1的地址才能从node1下线)。

Two:在node2(172.16.100.68)上查看虚拟ip。此时可发现vip1和vip2都在node2节点上。 Keepalived.conf、notity文件讲解 注意:lvs-nat配置的HA架构,需要VIP和dip的别名接口都要转移,就需要两个实例,同一个vrrp同步组, 以下是架设步骤 一、 在VI中的主机状态发生改变时通过脚本(/etc/keepalived/notify.sh)的方式发送通知信息。 先自行写notify scripts脚本(notify主要是发送警告信息),notify.sh脚本可以放置到/etc/keepalived目录内(keepalived的配置文件目录下)。

下面是一个notify.sh脚本的简单示例: #!/bin/bash

Author: MageEdu linuxedu@foxmail.com

description: An example of notify script

vip=172.16.100.80 contact='root@localhost'

notify() { mailsubject="hostname to be $1: $vip floating" mailbody="date '+%F %H:%M:%S': vrrp transition, hostname changed to be $1" echo $mailbody | mail -s "$mailsubject" $contact }

case "$1" in master) notify master exit 0 ;; backup) notify backup exit 0 ;; fault) notify fault exit 0 ;; *) echo 'Usage: basename $0 {master|backup|fault}' exit 1 ;; esac

1、 notify脚本完成后,给予执行权限。

2、 测试notify功能,给notify一个参数master。(下面的172.16.100.1应该是172.16.100.80)

3、 检测notify功能完善之后,把notify.sh脚本复制到另一个node节点的/etc/keepalived目录下。

4、 在两个node(172.16.100.67,172.16.100.68)节点上keepalived.conf配置文件中添加notify信息。

以下是node1(172.16.100.67)节点上keepalived.conf里面的notify代码信息。

! Configuration File for keepalived

global_defs { notification_email { root@localhost } notification_email_from kaadmin@localhost smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id node1.magedu.com
}

vrrp_script chk_mantaince_down { script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0" interval 1 weight -2 }

vrrp_instance VI_1 { state MASTER
interface eno16777736 virtual_router_id 51 priority 100
advert_int 1 authentication { auth_type PASS auth_pass 8ab998cd } virtual_ipaddress { 172.16.100.80/16 } track_script { chk_mantaince } notify_master "/etc/keepalived/notify.sh master" notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault" }

vrrp_instance VI_2 { #实例2与实例1不同地方 state BACKUP #实例2与实例1不同地方 interface eno16777736 virtual_router_id 61 #实例2与实例1不同地方 priority 99 #实例2与实例1不同地方 advert_int 1 authentication { auth_type PASS auth_pass 7bb962df #实例2与实例1不同地方 } virtual_ipaddress { 172.16.100.90/16 #实例2与实例1不同地方 } track_script { chk_mantaince } }

5、 node2(172.16.100.68)的keepalived.conf中添加notify信息。 ! Configuration File for keepalived

global_defs { notification_email { root@localhost } notification_email_from kaadmin@localhost smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id node2.magedu.com #node2与node1配置文件不同地方 }

vrrp_script chk_mantaince_down { script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0" interval 1 weight -2 }

vrrp_instance VI_1 { state BACKUP #node2与node1配置文件不同地方 interface eno16777736 virtual_router_id 51 priority 99 #node2与node1配置文件不同地方 advert_int 1 authentication { auth_type PASS auth_pass 8ab998cd } virtual_ipaddress { 172.16.100.80/16 } track_script { chk_mantaince } notify_master "/etc/keepalived/notify.sh master" notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault" }

vrrp_instance VI_2 {
state MASTER #node2与node1配置文件不同地方 interface eno16777736 virtual_router_id 61
priority 100 #node2与node1配置文件不同地方 advert_int 1 authentication { auth_type PASS auth_pass 7bb962df
} virtual_ipaddress { 172.16.100.90/16
} track_script { chk_mantaince } }

6、 重启node1和node2的keepalived服务。(node1和node2是centos7) 下面的centos7上在node1上执行来启动两个节点的keepalived服务。 ~] systemctl start keepalived.service; ssh node2 ‘systemctl start keepalived.service’

7、 利用mail查看notify是否通知。

此时发现notify没有通知,只有发生转移时才会转移。此时在node1(172.16.100.67)节点上添加一个/etc/keepalived/down文件来手动转移master到node2节点上。(vrrp_script chk_mantaince_down是控制添加down文件进行转移master)

在node1上执行ip address list查看172.16.100.80是否转移

Node1此时发现172.16.100.80内有转移,在等几秒执行ip addr list

Node1此时发现172.16.100.80已经转移。

利用mail命令查看notify的通知信息是否到达。(两个node节点上都会有邮件。)【因为此时是在node1上创建down文件,node1是master转化为backup,node2是backup转化为master,所以node1是notify backup, node2是notify master】

此时发现notify还没到达。

8、 二、 在keepalived.conf配置如何实现ipvs规则。 在/etc/keepalived/keepalived.conf里面设定lvs(LVS CONFIGURATION),lvs的设定分三种virtual server groups、virtual server(s)。 1、 virtual server groups先不管 2、 virtual server(s) virtual server有两种方式vip vport(套接字)、fwmark <int>(防火墙标记)。

vip vport指定: delay_loop:说明每隔多久向real server发一次健康状态检查。 lb_algo:负载均衡的调度算法(支持rr|wrr|lc|wlc|lblc|sh|dh)。 lb_kind:lvs的类型(支持三种类型NAT|DR|TUN)。 persistence_timeout:持久时长(也就是ipvsadm –p的数值)。 protocol TCP:指定tcp(此命令只支持tcp协议,直接用ops才指定udp)。 ops:指定udp。 ha_suspend:如果vip不存在,将挂停healthchecker的activity。 virtualhost:定义哪些虚拟主机做HTTP_GET或SSL_GET。 sorry_server <IPADDR> <PORT>:当所有的real server都挂掉时,我们找一个主机能提示。 real server <IPADDR> <PORT>:定义一个虚拟服务当中有哪些real server。 real server { weight:定义权重。 notify_up:每一个real server上线时通知。 notify_down:每一个real server下线时通知。

HTTP_GET|SSL_GET
    url {
path <STRING>:向哪个路径指明url请求。
status_code <INT>:校验的结果是200就认为是ok,否则失败。

} nb_get_retry <INT>:连接服务器重试次数 delay_before_retry <INT>:连接服务器超时时长。 connect_ip <IP ADDRESS>:指明向哪个主机做健康状态检查。 connect_port <PORT>:指明向哪个主机端口做健康状态检查。 bindto <IP ADDRESS>:指明自己主机通过哪个网卡ip发送健康状态检查。一般是dip所在的网卡ip。 bindto_port <PORT>:指明自己的主机port做健康状态检查。 connect_timeout <INTEGER>:连接超时时长。 } TCP_CHECK { connect_ip <IP ADDRESS>:指明向哪个主机做健康状态检查。 connect_timeout <INTEGER>:连接超时时长。 }