LVS 是属于集群调度服务器,为用户提供web服务的
keepalived 实现的功能是冗余,主备
LVS +keepalived (使用Keepalived为LVS调度器提供高可用功能,防止调度器单点故障,为用户提供Web服务)
1.自动配置LVS,带健康检查
2.照抄路由器VRRP(路由热备协议)的功能,用软件的方式把它写出来(通过修改配置文件现了热备冗余功能)
以上两者是独立存在的,可以单独使用,也可以同时使用
路由热备协议: 两台路由器设置优先级参数形成主备,优先级的参数较大,优先级高的 ,同时需要配置vip(浮动ip)
LVS1 (keepalivd,主100,vip)
LVS2 (keepalivd,备50,vip)
vim /etc/keepalived/keepalived.conf
keepalived也可以字apache,nginx得到应用 例如:
实现web服务器的冗余备份:
web1 (httpd+keepalived) + web2(httpd+keepalived)
实现nginx代理服务器的冗余备份:
nginx (keepalived)
vip web1 web2
nginx (keekpalived)
实验环境如下:
1 .web 1 和web2服务器配置内容参照:https://blog.csdn.net/weixin_43669585/article/details/89632189
web1和web2服务器需要配置vip 和rip,同时还要有能访问问的网页(apache)
2. LVS1和LVS2在接口eth0配置RIP:192.168.4.5,192.168.4.6, 是与web服务器通信的ip地址
3 在LVS1和LVS2安装keepalived
yum install -y ipvsadm
{ 健康检查方式:SSL_GET(检查配置文件是否被更改) ,HTTP_GET(检查配置文件是否被更改) , TCP_CHECK (只是检查 端口 服 务)
SSL_GET,HTTP_GET(检查网页是否有被篡改)
url {
path / 网页文件路径
digest ff20ad2481f97b1754ef3e12ecd3a9cc //md5sum值
}
curl http://192.168.4.100 | md5sum //查看md5sum值 }
在 LVS1配置keepalived配置文件
[root@proxy ~]# vim /etc/keepalived/keepalived.conf
global_defs {
notification_email { ////设置报警收件人邮箱
[email protected]
[email protected]
[email protected]
}
notification_email_from [email protected] // //设置发件人
smtp_server 192.168.200.1 // //定义邮件服务器
smtp_connect_timeout 30
router_id LVS1 //设置路由ID号(实验需要修改)
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER // 主服务器为MASTER
interface eth0 // 定义网络接口 ,,将虚拟IP配置在eth0中, 一个网卡多ip
virtual_router_id 51 // 主辅VRID号必须一致
priority 100 //服务器优先级,参数越高优先级越大
advert_int 1 //每隔1s比较两台服务器优先级高底
authentication {
auth_type PASS
auth_pass 1111 // 主辅服务器密码必须一致 (防止网站劫持,假如外界的把LVS的优先级调高,会访问攻击者的网 站)
}
virtual_ipaddress {
192.168.4.15 //配置VIP(实验需要修改)
}
}
virtual_server 192.168.4.15 80 { //设置ipvsadm的VIP规则(实验需要修改)
delay_loop 6
lb_algo rr //设置LVS调度算法为WRR
lb_kind DR //设置LVS的模式为DR
#persistence_timeout 50 //一旦访问web1,在50秒内一直访问web1,即是50秒内访问同一个web服务起,在实验环境中需 要注释
protocol TCP
real_server 192.168.4.100 80 { //设置后端web服务器真实IP(实验需要修改)
weight 1 ///设置权重为1
TCP_CHECK { //健康检查的方式,只是检查端口,服务 有没有起来
connect_timeout 3 // 超时间3秒,连接3秒后连接不上,(再重试连接)
nb_get_retry 3 // 连接不上后重试3次
delay_before_retry 3 // 隔3秒做一次健康检测
}
}
real_server 192.168.4.200 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
从配置文件中可以看出,keepalived是可以自动配置LVS的,配置文件中的 virtual_ipaddress,表示配置虚拟ip, real_server 192.168.4.100 80 表示添加新的 后端web服务器,如有多个则配置多个real_server 192.168.4.100 80
相当于的命令是 :[root@proxy ~]# ipvsadm -A -t 192.168.4.15:80 -s wrr
[root@proxy ~]# ipvsadm -a -t 192.168.4.15:80 -r 192.168.4.100 -g -w 1
[root@proxy ~]# ipvsadm -a -t 192.168.4.15:80 -r 192.168.4.200 -g -w 1
重新启动keepalived
此时可以在客户端测试,curl http://192.168.4.15,可以轮询出现 web1和web2的网页,
LVS1: scp /etc/keepalived/keepalived.conf 192.168.4.6:/etc/keepalived/keepalived.conf //将LVS1的keepalived配置文件传送到 LVS2
在 LVS2配置keepalived配置文件
vim /etc/keepalived/keepalived.conf
router_id LVS2 //设置路由ID号(实验需要修改)
priority 50 //服务器优先级,参数越高优先级越大
state BACKUP // 主服务器为MASTER
客户端测试
在LVS1 关闭keepalived服务,
curl http://192.168.4.15 //也能轮询出现web1和web2的网页
题外话:
nginx,Haproxy,LVS性能和功能之间的比较,性能越好,功能较差,实现调度,集群,代理功能
性能: LVS>Haproxy>nginx
功能:nginx>Haproxy>LVS
F5 使用big-ip软件