前面讲了Nginx+Keepalived 保障HA高可用
这是 Lvs+Keepalived 保障HA高可用
什么是 Lvs
LVS的英文全称是Linux Virtual Server,即Linux虚拟服务器。它是我们国家的章文嵩博士的一个开源项目。在linux内存2.6中,它已经成为内核的一部分,在此之前的内核版本则需要重新编译内核
Lvs是属于4层网络协议,Nginx是属于7层网络协议
Lvs只做转发和监听,不负责握手
Nginx+Keepalived 保障HA高可用
安装 Keepalived 和 ipvsadm
yum install keepalived ipvsadm -y
配置
主节点 node1 / 备节点 node2
cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak
vi keepalived.conf
配置主服务器
global_defs {
# notification_email {
# }
# smtp_connect_timeout 30
router_id LVS_DEVEL
}
# 虚拟路由冗余协议!
vrrp_instance VI_1 {
state MASTER #node2 BACKUP
#配置LVS机器对外开放的网卡
interface eth0
virtual_router_id 51
# 权重
priority 100 #node2 50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.150.100/24 dev eth0 label eth0:3
}
}
virtual_server 192.168.150.100 80 {
delay_loop 6
lb_algo wrr
lb_kind DR #使用LVSDR模式
nat_mask 255.255.255.0
#实验 不需要50 要不然看不出来
persistence_timeout 0
protocol TCP
# 这里是 对自服务 心跳的检测
real_server 192.168.150.12 80 { #真实服务的IP
weight 1 #配置加权轮询的权重
HTTP_GET {
url {
path /
tatus_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.150.13 80 {
weight 2
HTTP_GET {
url {
path /
tatus_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
配置备服务器
global_defs {
# notification_email {
# }
# smtp_connect_timeout 30
router_id LVS_DEVEL
}
# 虚拟路由 冗余 协议!
vrrp_instance VI_1 {
state BACKUP #node2 BACKUP
#配置LVS机器对外开放的网卡
interface eth0
virtual_router_id 51
# 权重
priority 50 #node2 50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.150.100/24 dev eth0 label eth0:3
}
}
virtual_server 192.168.150.100 80 {
delay_loop 6
lb_algo wrr
lb_kind DR #使用LVSDR模式
nat_mask 255.255.255.0
#实验 不需要50 要不然看不出来
persistence_timeout 0
protocol TCP
# 这里是 对自服务 心跳的检测
real_server 192.168.150.12 80 { #真实服务的IP
weight 1 #配置加权轮询的权重
HTTP_GET {
url {
path /
tatus_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.150.13 80 {
weight 2
HTTP_GET {
url {
path /
tatus_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}