Keepalived
VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)是一种容错协议,保证当主机的下一条路由器出现故障时,由另一台路由器来代替出现故障的路由器进行工作,从而保持网络通信的连续性和可靠性
优先级: 主\备份路由 IP mac(全球唯一)
Lvs web1
Client vip lvs (keepalived ) web2
Keepalived :
1 Vrrp --解决单点故障
2自动 Lvs
3 健康检查 - 检查后端web1 web2 坏了自动切换
1 配置 web1 web2 ip proxy (4.5)
2 装包 keepalived --web1 2
3配置文件 /etc/keepalived/keepalived.conf (web 1 2)
Router_id web1
Vrrp _instence
vrrp_instance VI_1 {
notification_email_from ka@localhost //设置发件人
smtp_server 127.0.0.1 //定义邮件服务器
smtp_connect_timeout 30
router_id web1 //设置路由ID号(实验需要修改)
}
state MASTER //主服务器为MASTER(备服务器需要修改为BACKUP)
interface eth0 //定义网络接口
virtual_router_id 51 //主备服务器VRID号必须一致
priority 100 //服务器优先级,优先级高优先获取VIP
advert_int 1
authentication {
auth_type pass
auth_pass 1111 //主备服务器密码必须一致
}
virtual_ipaddress { //谁是主服务器谁获得该VIP(实验需要修改)
192.168.4.80
Proxy ping 4.80
Start keepalived
Iptables -F
Ip a s eth0
4 测试 web 1 --测试vrrp,解决单点故障
Ip addr show eth0
Web 2
Ip addr show eth0
测试proxy
keepalived + lvs
使用Keepalived为LVS调度器提供高可用功能,防止调度器单点故障,为用户提供Web服务:
1 Vrrp --解决单点故障
2自动 Lvs
3 健康检查
1配置IP (web1 \2) --4.100 \4.200
2配置vip地址 /network-scripts/
Vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.4.15
NETMASK=255.255.255.255
NETWORK=192.168.4.15
BROADCAST=192.168.4.15
ONBOOT=yes
NAME=lo:0
解决地址冲突:
root@web1 ~]# vim /etc/sysctl.conf
#手动写入如下4行内容
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
#当有arp广播问谁是192.168.4.15时,本机忽略该ARP广播,不做任何回应
#本机不要向外宣告自己的lo回环地址是192.168.4.15
3
配置proxy1主机的网络参数(不配置VIP,由keepalvied自动配置) --4.5
4
配置proxy2主机的网络参数(不配置VIP,由keepalvied自动配置) --4.6
Step 二
后台web服务(web1 web 2)
自定义web界面
[root@web1 ~]# yum -y install httpd
[root@web1 ~]# echo “192.168.4.100” > /var/www/html/index.html
Step三
1 proxy1 2 装包 keepalived
2配置
virtual_server 192.168.4.15 80 { //设置ipvsadm的VIP规则(实验需要修改)
delay_loop 6
lb_algo wrr //设置LVS调度算法为WRR
lb_kind DR //设置LVS的模式为DR
#persistence_timeout 50
#注意这样的作用是保持连接,开启后,客户端在一定时间内始终访问相同服务器
protocol TCP
real_server 192.168.4.100 80 { //设置后端web服务器真实IP(实验需要修改)
weight 1 //设置权重为1
TCP_CHECK { //对后台real_server做健康检查
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.4.200 80 { //设置后端web服务器真实IP(实验需要修改)
weight 2 //设置权重为2
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
测试Proxy1: systemctl restart keepalived (配好了rip)
Ipvsadm -Ln --查LVS规则
Ip a s eth0
Client curl http:192.168.4.15 (vrrp+调度)
3客户端测试
客户端使用curl命令反复连接http://192.168.4.15,查看访问的页面是否会轮询到不同的后端真实服务器。–必须关掉web1 we2的keepalived软件.不然会有冲突,.
三种检查:
ping TCP检查
Curl --http检查
Md5sum --检查hash 值 --ssl _get 检查
Step三
Hyproxy --负载平衡集群
Hyproxy=nginx(代理软件)
配置文件格式: 1 Front 名 *:80
Use_backend 名 --调用集群
Backend 名 --集群
Balance roundrobin --轮询
Server web1
Server web 2
2 Listen 名 *:80
Balance roundrobin
Server web1
Server web2
****************************************************
准备Nginx 环境
Web1 2 (2.100 /2.200) --删除vip
Procy
Stop keepalived(因为上面做了keepalived实验)
********************************************************
Step 一
部署好Httpd环境
Web1 /web2
Step 二
部署haproxy 服务器
1装包–haproxy
测试页面状态界面:真机
Webserver
stsates
2配置文件
/etc/haproxy/haproxy.cfg
Main ;
Listen serverweb 0.0.0.0:80
Balance roundrobin
Server web1 192.168.2.100:80
Server web2 192.168.2.200:80
99dd
3 启动/开机
Haproxy
4 curl 192.168.4.5
(调度轮询)
5 查看状态
配置文件
Listen stats 0.0.0.0:80
Stats refresh 30s --stats (统计数据)
Stats uri /stats
Stats realm Haproxy Manager
Stats auth admin:lijieli
6 真机测试 192.168.4.5:1080/stats --验证
Queue 队列数据信息(当前对列数据数量,最大值,队列限制数量)
Session rate --每秒会话率
Sessions总会话量
Errors错误请求,错误连接,错误回应
Warnings重新尝试警告,.
重新连接
Server(状态,最后检查时间,权重.备份服务器数量,down机服务器数量,down机服务时间长)