一、环境
(一)Client:192.168.163.128 客户端
[root@localhost ~]# hostnamectl set-hostname client
(二)LVS:192.168.163.132 负载均衡器 虚拟IP地址:192.168.163.123[root@localhost ~]# hostnamectl set-hostname lvs-dr
(三)Web1:192.168.163.135 服务器 虚拟IP地址:192.168.163.123[root@localhost ~]# hostnamectl set-hostname web1
(四)Web2:192.168.163.136 服务器 虚拟IP地址:192.168.163.123[root@localhost ~]# hostnamectl set-hostname web2
(五)所有主机关闭防火墙并增强:
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
(六)拓展图
二、LVS准备VIP和路由
(一)添加VIP:
[root@lvs-dr ~]#ifconfig ens33:0 192.168.163.123 broadcast 192.168.163.255 netmask 255.255.255.0 up
(二)设置路由:
[root@lvs-dr ~]#route add -host 192.168.163.123 dev ens33:0
[root@lvs-dr ~]#route -n
(三)设置路由转发
1.在 /etc/sysctl.conf中配置:
[root@lvs-dr ~]#vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 #开启路由功能
net.ipv4.conf.all.send_redirects = 0 #禁止转发重定向报文
net.ipv4.conf.ens33.send_redirects = 0 #禁止ens33转发重定向报文
net.ipv4.conf.default.send_redirects = 0 #禁止转发默认重定向报文
2.刷新配置:
[root@lvs-dr ~]#sysctl -p
3.加载模块:
[root@lvs-dr ~]#modprobe ip_vs
[root@lvs-dr ~]#cat /proc/net/ip_vs
三、LVS设置负载均衡条目/规则
(一)下载ipvsadm:
[root@lvs-dr ~]#yum install ipvsadm -y
(二)清空ipvsadm,并做策略:
[root@lvs-dr ~]#ipvsadm -C #清除虚拟服务器表
[root@lvs-dr ~]#ipvsadm -A -t 192.168.163.123:80 -s rr
[root@lvs-dr ~]#ipvsadm -a -t 192.168.163.123:80 -r 192.168.163.135:80 -g
[root@lvs-dr ~]#ipvsadm -a -t 192.168.163.123:80 -r 192.168.163.136:80 -g
#-A 添加virtual server #-t 指定使用tcp协议
#-s 指定调度策略/负载算法为rr #-a 添加realserver
#-r 指定realserver是谁 #-g LVS类型DR
LVS类型: -g:Gateway,DR(默认使用的类型)
-i:ipip,TUN
-m:masquerade(地址伪装),NAT
(三)LVS让配置永久生效
[root@lvs-dr ~]#ipvsadm-save > /etc/sysconfig/ipvsadm
[root@lvs-dr ~]#systemctl enable ipvsadm
四、WEB集群
(一)给两个web上部署httpd服务
1.安装httpd服务:
[root@web1 ~]#yum install -y httpd
2.修改主页内容:
[root@web1 ~]#echo web1 > /var/www/html/index.html
3.启动服务:
[root@web1 ~]#systemctl start httpd
[root@web1 ~]#systemctl enable httpd
#给web2同样部署
(二)给两个web服务器的lo网卡设置子网掩码为32位vip
[root@web1 ~]#ifconfig lo:0 192.168.163.123/32
[root@web2 ~]#ifconfig lo:0 192.168.163.123/32
(三)给两个web服务器设置内核参数
[root@web1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@web1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
#给web2同样部署
五、客户端测试
(一)不同的客户端测试:
[root@client ~]# elinks --dump http://192.168.163.123/
(二)ipvsadm状态测试
1.查看策略:
[root@lvs-dr ~]# ipvsadm -ln
2.查看连接状态:
[root@lvs-dr ~]# ipvsadm -lnc