lvs配置-DR
要求:nat模型实现http和https两种负载均衡集群
实验环境 | 主机名 | 主机 | IP地址 |
---|---|---|---|
centos7 | client | 客户端 | 192.168.88.131 |
centos7 | lvs | lvs服务器 | DIP:192.168.88.128 VIP:192.168.88.250/32 |
centos7 | rs1 | RS1 | VIP:192.168.88.250/32 RIP:192.168.88.129 |
centos7 | rs2 | RS2 | VIP:192.168.88.250/32 RIP:192.168.88.130 |
首先在RS上安装好apache服务
详细内容请参考:
https://blog.csdn.net/Mzh_CSDN/article/details/107633541
配置IP地址
//配置client的IP地址
[root@client ~]# hostname -I
192.168.88.131
//配置lvs服务器
[root@lvs ~]# hostname -I
192.168.88.128
//配置lvs的VIP地址
[root@lvs ~]# ip addr add 192.168.88.250/32 dev lo
//配置rs的RIP
[root@rs1 ~]# hostname -I
192.168.88.129
[root@rs2 ~]# hostname -I
192.168.88.130
//修改RS网卡内核参数
[root@rs1 ~]# vim /etc/sysctl.conf
# For more information, see sysctl.conf(5) and sysctl.d(5).
net.ipv4.conf.all.arp_ignore = 1 //添加以下两行
net.ipv4.conf.all.arp_announce = 2
[root@rs1 ~]# sysctl -p
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
//配置RS的vip
[root@rs1 ~]# ip addr add 192.168.88.250/32 dev lo
//rs2同上
//配置路由信息:lvs和rs都要配
[root@lvs ~]# route add -host 192.168.88.250 dev lo
[root@rs1 ~]# route add -host 192.168.88.250 dev lo
[root@rs2 ~]# route add -host 192.168.88.250 dev lo
//lvs添加规则
[root@lvs ~]# yum -y install ipvsadm
[root@lvs ~]# ipvsadm -A -t 192.168.88.250:80 -s wrr
[root@lvs ~]# ipvsadm -A -t 192.168.88.250:443 -s wrr
[root@lvs ~]# ipvsadm -a -t 192.168.88.250:80 -r 192.168.88.129:80 -g
[root@lvs ~]# ipvsadm -a -t 192.168.88.250:443 -r 192.168.88.129:443 -g
[root@lvs ~]# ipvsadm -a -t 192.168.88.250:80 -r 192.168.88.130:80 -g
[root@lvs ~]# ipvsadm -a -t 192.168.88.250:443 -r 192.168.88.130:443 -g
[root@lvs ~]# ipvsadm -S > /etc/sysconfig/ipvsadm
[root@lvs ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.88.250:80 wrr
-> 192.168.88.129:80 Route 1 0 0
-> 192.168.88.130:80 Route 1 0 0
TCP 192.168.88.250:443 wrr
-> 192.168.88.129:443 Route 1 0 0
-> 192.168.88.130:443 Route 1 0 0
//在client上测试
[root@client ~]# for i in $(seq 10);do curl 192.168.88.250;done
RS2:192.168.88.130
RS1:192.168.88.129
RS2:192.168.88.130
RS1:192.168.88.129
RS2:192.168.88.130
RS1:192.168.88.129
RS2:192.168.88.130
RS1:192.168.88.129
RS2:192.168.88.130
RS1:192.168.88.129
[root@client ~]# for i in $(seq 10);do curl -k https://192.168.88.250;done
RS2:192.168.88.130
RS1:192.168.88.129
RS2:192.168.88.130
RS1:192.168.88.129
RS2:192.168.88.130
RS1:192.168.88.129
RS2:192.168.88.130
RS1:192.168.88.129
RS2:192.168.88.130
RS1:192.168.88.129