第一步,环境准备
服务 | IP | 描述 |
Keepalived vip Haproxy 负载均衡 主服务器 | Rip:192..168.244.101 Vip:192.168.244.100 | Keepalive主节点 Keepalive作为高可用 Haproxy作为4 或7层负载均衡 |
Keepalived vip Haproxy 负载均衡 备用服务器 | Rip:192.168.244.102 Vip:192.168.244.100 | Keepalive从节点 Keepalive作为高可用 Haproxy作为4 或7层负载均衡 |
Web服务器1 | 192.168.244.103 | 后端真实服务器 |
Web服务器2 | 192.168.244.104 | 后端真实服务器 |
关闭selinux、firewalld、配置yum源,修改主机名,配置域名解析,配置时间同步
修改主机名
hostnamectl set-hostname master
hostnamectl set-hostname backup
hostnamectl set-hostname server1
hostnamectl set-hostname server2
配置域名解析,四台服务器都配置
# cat >> /etc/hosts <<EOF
192.168.244.101 master
192.168.244.102 backup
192.168.244.103 server1
192.168.244.104 server2
EOF
关闭防火墙,关闭selinux,四台服务器都要关闭
systemctl disable firewalld --now
关闭selinux
sed -i '/^SELINUX/s/enforcing/disabled/g' /etc/selinux/config
setenforce 0
安装常用软件
yum -y install ntpdate bash-completion* net-tools wget
配置时间同步
crontab -e
*/1 * * * * /usr/sbin/ntpdate ntp.aliyun.com
四台服务器配置yum源
#wget -O \
/etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
#wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
第二步,安装httpd服务器,server1和server2安装httpd,并启动httpd
在server1和server2上安装web服务器
server1 ~]# yum -y install httpd
server1 ~]echo "server1" > /var/www/html/index.html
server1 ~]# systemctl start httpd
server1 ~]# curl 192.168.244.103
server2 ~]# yum -y install httpd
server2 ~]echo "server02" > /var/www/html/index.html
server2 ~]# systemctl start httpd
server2 ~]# curl 192.168.244.104
第三步,安装keepalived
开始安装keepalived,并将/etc/keepalived/keepalived.conf文件进行备份
在master和backup两台服务器上安装
yum -y install keepalived
cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
第四步,开始修改keepalived.conf配置文件 ,在master和backup两台服务器上修改
cat > /etc/keepalived/keepalived.conf << EOF
global_defs {
router_id LVS_master #主和从要有单独的route_id
}
vrrp_instance VI_1 {
state MASTER #主为MASTER 从为BACKUP
interface ens33 #指定配机网卡的设备名
virtual_router_id 51 #指定虚拟路由主从要一致
priority 100 #指定优先级主优先高 从做先级低
advert_int 1 #心跳检测时间间隔
authentication { #keepalived内通信认证方式
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #指定绑定的vip
192.168.244.100
}
}
EOF
master上要修改的keeplived.conf配置文件
backup上要修改的keeplived.conf配置文件
第五步,开启keepalived
启动keepalived
master ~]# systemctl start keepalived
backup ~]# systemctl start keepalived
使用ip a指令查看vip是否配置成功
在master主服务器上配置成功
[root@master ~]# ip a
[root@backup ~]# ip a //从服务器上没有
测试一下vip是否飘移
关闭master服务器上的keepalived,查看backup服务器上是否有vip 也就是192.168.244.100/32的IP地址,有这说明vip漂移到了backup从服务器上,再开启master主服务器上的keepalived,就会漂移到master主服务器上
[root@master ~]# systemctl stop keepalived.service
成功
第六步,安装haproxy
Master和backup上安装
[root@master ~]# yum -y install haproxy
[root@backup ~]# yum -y install haproxy
备份一下/etc/haproxy/haproxy.cfg 文件 ,防止修改出问题
[root@master ~]# cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak
[root@backup ~]# cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak
第七步,haproxy配置文件,修改/etc/haproxy/haproxy.cfg 文件,master和backup上都要修改
[root@master ~]# vim /etc/haproxy/haproxy.cfg
listen stats
bind 0.0.0.0:880
stats enable
stats uri /status
stats auth admin:123456
stats refresh
frontend web_in
bind 0.0.0.0:80
use_backend web
backend web
balance roundrobin
server web1 192.168.244.103:80 check weight 2
server web2 192.168.244.104:80 check weight 8
拷贝配置文件到备服务器
# scp /etc/haproxy/haproxy.cfg 192.168.244.102:/etc/haproxy/
启动hyproxy
[root@master ~]# systemctl start haproxy.service
[root@backup ~]# systemctl start haproxy.service
账号:admin 密码:123
成功,也实现了负载均衡
但是Haproxy+keepalived高可用集群,允许keepalived宕机,允许后端真实服务器宕机,但是不允许haproxy宕机。
解决方案参考
Haproxy+keepalived高可用集群,haproxy宕机的解决方案-CSDN博客