该实验环境中所用到的软件包是 :ipvsadm
lvs只有调度功能,不带健康检查,nginx既有调度也有代理功能
部署LVS-DR跟LVS-NAT不同的是:LVS-DR客户端发出请求后,由后端WEB服务器直接转发数据给客户端client (同网段之间的转发),而LVS-NAT是通过nat转换传送给调度器,再由调度器转发给客户客户端(调度器和后端WEB服务器之间是不同网段,所以需要nat)
CIP是客户端的IP地址; 192.168.4.10
VIP是对客户端提供服务的IP地址;192.168.4.15(VIP必须配置在虚拟接口)
RIP是后端服务器的真实IP地址;192.168.4.100,192.168.4.200
DIP是调度器与后端服务器通信的IP地址 192.168.4.5
配置实验网络环境
一:设置Proxy代理服务器的VIP和DIP
注意:为了防止冲突,VIP必须要配置在网卡的虚拟接口!!!
配置VIP:
# vim /etc/sysconfig/network-scripts/ifcfg-eth0:0 //(eth0:0是新加的备份的网卡配置文件)
TYPE=Ethernet
BOOTPROTO=none
NAME=eth0:0
DEVICE=eth0:0
ONBOOT=yes
IPADDR=192.168.4.15 VIP的地址,
PREFIX=24
重启网络
# systemctl restart network
查看
ifconfig eth0:0
配置DIP: 将eth0的地址设置为192.168.4.5 (是调度器与后端服务器通信的IP地址)
二.设置后端服务器web1,web2的网络
1,给web1 web2设置RIP分别为:192.168.4.100,192.168.4.200
2 配置VIP ,以web1为例
# vim /etc/sysconfig/network-scripts/ifcfg-lo:0 (新增加的网卡必须是 lo:0 ,表示只有自己知道)
DEVICE=lo:0
IPADDR=192.168.4.15
NETMASK=255.255.255.255
NETWORK=192.168.4.15
BROADCAST=192.168.4.15
ONBOOT=yes
NAME=lo:0
3. web2的vip配置和web1一样 (可以直接将web1的配置文件传送给web2)
4.防止地址冲突的问题:
这里因为web1也配置与代理一样的VIP地址,默认肯定会出现地址冲突;以web1为例,web2也需要做如下操作
sysctl.conf文件写入这下面四行的主要目的就是访问192.168.4.15的数据包,只有调度器会响应,其他主机都不做任何响应,这样防止地址冲突的问题。
[root@web1 ~]# vim /etc/sysctl.conf #手动写入如下4行内容 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.all.arp_announce = 2 #当有arp广播问谁是192.168.4.15时,本机忽略该ARP广播,不做任何回应 #本机不要向外宣告自己的lo回环地址是192.168.4.15 [root@web1 ~]# sysctl -p //能使以上的配置文件立即生效
最后重启web1和web2的网络,设置防火墙与SELinux
三.在Proxy代理服务器安装ipvsadm软件包:
创建新的 集群服务器规则
添加真实服务器( -g 参数设置LVS工作模式为DR模式,-w 设置权重)
客户端测试:
#curl http://192.168.4.15 (会轮询显示web1和web2的网页内容)
[root@client ~]# curl http://192.168.4.15
192.168.2.100
[root@client ~]# curl http://192.168.4.15
192.168.2.200