一、 LVS-DR集群实验
实验准备
1) VMware 虚拟出三台CentOS 7
2) 在Vmware下将网络模式配合NAT模式,网段配置为80网段(根据自己喜好,注意一致性即可)
3) 分别配置三台CentOS7的网络地址配置为:
(1) 负载均衡调度器(LVS-DR)IP:192.168.80.20
(2) 服务器AA(Server1)IP:192.168.80.30,主机名为AA
(3) 服务器BB(Server2)IP:192.168.80.40,主机名为BB
4) VIP 地址:192.168.80.100,该配置在配置文件中实现。
5) 关闭三台CentOS7上面的防火墙
[root@localhost ~]# systemctl stop firewalld.service #关闭防火墙
[root@localhost ~]# systemctl disable firewalld.service #可直接选择禁止firewall开机启动
安装配置DS
6) 安装LVS IP-VS的管理模块ipvsadm
[root@localhost ~]# modprobe ip_vs //加载ip_vs模块
[root@localhost ~]# cat /proc/net/ip_vs //查看ip_vs版本信息
[root@localhost ~]# yum install ipvsadm //安装管理软件ipvsadm
7) 配置LVS IP-VS的管理模块的配置文件
[root@localhost ~]# vi dr.sh //进入VI编辑器
#配置文件内容:
#!/bin/bash
#添加虚拟地址VIP的虚接口,对应网卡名称是 ens33
ifconfig ens33:0 192.168.80.100 broadcast 192.168.80.100 netmask 255.255.255.255 up
#给ens33:0添加静态路由
route add -host 192.168.80.100 dev ens33:0
#清除内核虚拟服务器表中的所有记录
ipvsadm -C
#创建虚拟服务器,并配置负载均衡模式
ipvsadm -A -t 192.168.80.100:80 -s rr
#添加服务器节点
ipvsadm -a -t 192.168.80.100:80 -r 192.168.80.30:80 -g
ipvsadm -a -t 192.168.80.100:80 -r 192.168.80.40:80 -g
#输出当前配置结果,查看节点状态,加个“-n”将以数字形式显示地址、端口信息
ipvsadm -Ln
保存退出
【Esc键】>>【:wq!】
8) 执行配置文件dr.sh
[root@localhost ~]# sh dr.sh
9) 查看虚拟接口是否就绪
[root@localhost ~]# ifconfig
安装配置RS
10) 在两台RS上分别 安装&配置Httpd服务
[root@aa ~]# yum install -y httpd
[root@aa ~]# vi /etc/httpd/conf/httpd.conf
#配置文件修改
#找到下面该行,去掉 #,修改主机名
ServerName aa
进入目录并配置
[root@aa ~] # cd /var/www/html/
[root@aa html ] # echo "<h1>SERVER AA</h1>" > index.html
[root@aa html ] # cat index.html
回到根目录
[root@aa html ] # cd
11) 在两台RS上分别 配置RS响应和服务模式
[root@ aa~] # vi web.sh
#web配置文件修改
#!/bin/bash
#配置本机的VIP,用于和DS的VIP匹配,处理CIP发过来的请求
ifconfig lo:0 192.168.80.100 broadcast 192.168.80.100 netmask 255.255.255.255 up
route add -host 192.168.80.100 dev lo:0
# 以下四行echo是关闭本机的ARP广播响应功能
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
#使配置文件生效
sysctl -p &>/dev/null
12) 在两台RS上分别 执行脚本 并查看结果
[root@ aa ~] # sh web.sh //执行脚本
[root@ aa ~] # ifconfig
****** 另外一台服务器也同样配置,注意主机名和index文件两个地方不同******
ServerName bb
[root@bb html ] # echo "<h1>SERVER BB</h1>" > index.html
测试验证
13) 两台RS上分别 启动 http服务
[root@ aa ~] # service httpd start
[root@ bb ~] # service httpd start
14) 在客户端(除了这三台服务器之外的CentOS)的浏览器访问 http://192.168.80.100,多次刷新,根据负载均衡出现结果。
15) 在客户端(除了这三台服务器之外CentOS IP不要冲突)命令行下,执行
# for ((i=0; i<10; i++)); do curl 192.168.80.100 ; done
# for i in $(seq 1 10); do curl 192.168.80.100 ; done
# for i in `seq 1 10`; do curl 192.168.80.100 ; done
(注意:上面的 `seq 1 10` 外面的不是 ’ 引号,是键盘左上角的 ` )