keepalived+lvs+apache 实现负载均衡与高可用
2023-04-20 11:21 @学无止境 阅读(87) 评论(0) 收藏 举报参考拓扑结构

1、在两台Director Server上安装lvs 与keepalived
yum -y install keepalived ipvsadm
2、修改两台Director Server中 /etc/keepalived/keepalived.conf配置文件
global_defs {
notification_email {
root@localhost #默认三个地址,修改可用地址
}
#notification_email_from root@localhost
#smtp_server localhost
#smtp_connect_timeout 30
#router_id LVS1 #标识当前节点名字,两个节点的此项需要不相同。
#vrrp_skip_check_adv_addr
#vrrp_strict
#vrrp_garp_interval 0
#vrrp_gna_interval 0
}
#默认的配置文件中,使用第三方 smtp 服务器,但这在现实中几乎没有意义,发不出邮件,我们将其挃定为 localhost, 我们也可以将通知信息的发送交给本地 sendmail 服务处理。
vrrp_instance VI_1 { #定义一个实例,一个集群就是一个实例。 默认VI_1 可以随意改
state MASTER #指定 A 节点为主节点 备用节点上设置为 BACKUP 即可
interface ens33 #绑定虚拟 IP 的网络接口
virtual_router_id 51 #VRRP 组名,两个节点的设置必须一样,以指明各个节点属于同一 VRRP 组
priority 100 #主节点的优先级(1-254 之间),备用节点必须比主节点优先级低
advert_int 1 #组播信息发送间隔,两个节点设置必须一样
authentication { #设置验证信息,两个节点必须一致
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.20.103 #指定虚拟 IP, 两个节点设置必须一样
}
}
#类似添加虚拟一个服务 ipvsadm -A -t 192.168.1.70:80 -s rr
virtual_server 192.168.20.103 9000 { #对虚拟IP63添加LVS相关内容
delay_loop 6 #Keepalived 多长时间监测一次 RS
lb_algo rr #分发算法
lb_kind DR #DR 模式
nat_mask 255.255.255.0 #非NAT模式注释掉此行 注释用!号
persistence_timeout 50 #同一 IP 50秒内的请求都发到同个real server ,这个会影响LVS的 rr 调度算法, 同一 IP 超过 50 秒后,再次访问,才会被转发到另一台 real server 上。 persistence 持久性的意思
protocol TCP
#ipvsadm -a -t 192.168.2.111:80 -r 192.168.2.7 -g 添加的内容,类似这条命令
#ipvsadm -a -t 192.168.2.111:80 -r 192.168.2.8 –g 添加的内容,类似这条命令
real_server 192.168.20.101 9000 { #配置服务节点 1,需要指定 realserver 的真实 IP 地址和端口,IP不端口之间用空格隔开
weight 1 #配置服务节点的权值,权值大小用数字表示,数字越大,权值越高,设置权值大小可以为不同性能的服务器
TCP_CHECK { #这段内容手动添加,把以前的内容删除
connect_timeout 3 #表示 3 秒无响应超时
nb_get_retry 3 #表示重试次数
delay_before_retry 3 #表示重试间隔
connect_port 9000 #检测端口
}
}
real_server 192.168.20.102 9000 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 9000
}
}
}
3、重启keepalived
systemctl restart keepalived
备Director Server上keepalived的配置文件,只需要修改vrrp_instance VI_1中
state BACKUP
priority 80 #比100小的值
4、在两台Real Server上安装apache
yum install httpd
5、修改两台Real Server上的/etc/httpd/conf/httpd.conf 配置文件中监听端口为9000
(与keepalived配置文件中的一致,可不修改,用默认80)
6、在Real Server 1 的/var/www/html目录下添加网页
echo "this ip is 192.168.20.101" >> index.html
Real Server 2中
echo "this ip is 192.168.20.102" >> index.html
7、启动两台Real Server中的httpd 服务
systemctl start httpd
8、在两台Real Server通过脚本添加VIP

#!/bin/bash #description:start relserver VIP=192.168.20.103 source /etc/init.d/functions #加载环境变量(可以加载所有的环境变量) case $1 in start) echo "start LVS of Realserver DR" /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up /sbin/route add -host $VIP dev lo:0 echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce ;; stop) /sbin/ifconfig lo:0 down echo "Close LVS of Realserver DR" echo "0" > /proc/sys/net/ipv4/conf/lo/arp_ignore echo "0" > /proc/sys/net/ipv4/conf/lo/arp_announce echo "0" > /proc/sys/net/ipv4/conf/all/arp_ignore echo "0" > /proc/sys/net/ipv4/conf/all/arp_announce ;; *) echo "Usage:$0 (start|stop)" exit 1 esac
chmod 755 lvsrs.sh
启动脚本 sh lvsrs.sh start
可以通过 ip addr 查看VIP情况

9、通过VIP访问网页

参考文档:https://www.cnblogs.com/meml/p/12686851.html
浙公网安备 33010602011771号