Keepalived介绍及架设

一、 集群介绍。
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 {br/>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 {
br/>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 {
br/>[email protected]
[email protected]
br/>[email protected]
}
notification_email_from [email protected]
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 { #表示定义这些警告信息发送给以下三个邮箱;
br/>[email protected]
[email protected]
br/>[email protected]
}
notification_email_from [email protected] #指明keepalived发送给上面三个邮箱的发件人名为[email protected]
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 {
br/>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 {
br/>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 <[email protected]>

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 {
br/>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 {
br/>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>:连接超时时长。
}

猜你喜欢

转载自blog.51cto.com/14044882/2309784