[root@tom01 keepalived-1.2.19]# vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
xxxxxx@qq.com
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_KEEP01 #主备上要不同的名称
}
vrrp_instance VI_1 { #主备名称要相同
state MASTER #主是MASTER备是BACKUP
interface eth0
lvs_sync_daemon_inteface eth0 #同步接口虚拟机可不写
virtual_router_id 51 #Id主备名称要相同
priority 150 #优先级越大表示优先
nopreempt #Master从故障恢复之后不抢占VIP,让BACKUP继续为主
advert_int 1 #心跳检查间隔时间单位秒
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #设置虚拟IP地址,可以设置多个虚拟IP地址,每行一个
10.125.192.100
10.125.192.101
}
}
virtual_server 10.125.192.100 80 { #后端提供服务的Vip IP和端口之间用空格隔开
delay_loop 6 #健康检查时间
lb_algo wrr #设置调度算法
lb_kind DR #选择lvs模式
nat_mask 255.255.255.0
persistence_timeout 10 #会话超时时间 在设置的时间内来自同一IP的请求发给同一台real server
protocol TCP
real_server 10.125.192.2 80 {
weight 1 #默认为1,0为失效
inhibit_on_failure #在服务器健康检查失效时,将其设为0,而不是直接从ipvs中删除
TCP_CHECK { #realserve的状态检测设置部分
connect_timeout 8 #连接超时时间
nb_get_retry 3 #重试次数
delay_before_retry 3 #重试时间间隔
connect_port 80 #健康检查端口
}
}
real_server 10.125.192.3 80 {
weight 1
inhibit_on_failure
TCP_CHECK {
connect_timeout 8
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
TCP_CHECK健康检查方法也可以换成
HTTP_GET { #健康检查方法
url {
path / #检查页面
status_code 200 #返回状态码
}
配置非抢占式
添加参数
nopreempt
注:
1 两个节点的state必须都是BACKUP
2 两个节点都必须加上nopreempt