部署LVS服务,使用NAT模式工作,
| 主机名 | IP地址 | 角色 |
|---|---|---|
| client | eth0 192.168.4.10/24 | 客户端 |
| proxy | eth0 192.168.4.5/24 eth1 192.168.2.5/24 | DS(调度服务器) 默认网关 |
| web1 | eth0 192.168.2.100/24 gateway 192.168.2.5 | web服务器 |
| web2 | eth0 192.168.2.200/24 gateway=192.168.2.5 | web服务器 |
| 软件名称 | 版本 |
|---|---|
| centos | 7.5 |
| httpd | 2.4.6 |
| ipvsadm | 1.27 |

web1、web2提供httpd服务
proxy安装LVS软件,成为调度服务器,以NAT的模式,轮询(rr)的算法工作
client访问proxy的调度器,轮询出现web1、web2的界面
1.web1修改IP地址为192.168.2.100/24,网关改为192.168.2.5,关闭防火墙,关闭selinux,安装httpd软件,写入测试页面
[root@web1 ~]# sed -i '/IPADDR/c IPADDR=192.168.2.100' /etc/sysconfig/network-scripts/ifcfg-eth0 #修改IP地址
[root@web1 ~]# sed -i '/GATEWAY/c GATEWAY=192.168.2.5' /etc/sysconfig/network-scripts/ifcfg-eth0 #修改网关地址
说明
网关必须改,不然实验成功不了
[root@web1 ~]# systemctl restart network #重启网卡
[root@web1 ~]# ip a s #检查IP地址
[root@web1 ~]# route -n #检查网关
[root@web1 ~]# systemctl stop firewalld && systemctl disable firewalld #关闭防火墙,禁止自动启动
[root@web1 ~]# sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config #关闭selinux,重启后生效
[root@web1 ~]# yum -y install httpd #安装httpd软件
[root@web1 ~]# echo "192.168.2.100-web1" > /var/www/html/index.html #写入测试文件
[root@web1 ~]# systemctl start httpd #启动http服务
[root@web1 ~]# systemctl enable httpd #设置http服务开机自启
2.web2修改IP地址为192.168.2.200/24,网关改为192.168.2.5,关闭防火墙,关闭selinux,安装httpd软件,写入测试文件
[root@web2 ~]# sed -i '/IPADDR/c IPADDR=192.168.2.200' /etc/sysconfig/network-scripts/ifcfg-eth0 #修改IP地址
[root@web2 ~]# sed -i '/GATEWAY/c GATEWAY=192.168.2.5' /etc/sysconfig/network-scripts/ifcfg-eth0 #修改网关地址
说明
网关必须改,不然实验成功不了
[root@web2 ~]# sed -n 'p' /etc/sysconfig/network-scripts/ifcfg-eth0 #检查配置
[root@web2 ~]# systemctl restart network #重启网卡
[root@web2 ~]# ip a s #查看IP地址
[root@web2 ~]# route -n #查看路由表
[root@web2 ~]# systemctl stop firewalld && systemctl disable firewalld #关闭防火墙,禁止开机启动
[root@web2 ~]# sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config #关闭selinux,重启后生效
[root@web2 ~]# sed -n 'p' /etc/selinux/config #检查配置
[root@web2 ~]# yum -y install httpd #安装httpd软件
[root@web2 ~]# echo "192.168.2.200-web2" > /var/www/html/index.html #写入测试页面
[root@web2 ~]# systemctl start httpd #启动http服务
[root@web2 ~]# systemctl enable httpd #设置开机自启
3.proxy有两张网卡,eth0网卡修改IP地址为192.168.4.5/24,eth1网卡修改地址为192.168.2.5/24
[root@proxy ~]# sed -i '/IPADDR/c IPADDR=192.168.4.5' /etc/sysconfig/network-scripts/ifcfg-eth0 #修改eth0网卡IP地址
[root@proxy ~]# sed -i '/PREFIX/c PREFIX=24' /etc/sysconfig/network-scripts/ifcfg-eth0 #修改eth0网卡子网掩码
[root@proxy ~]# nmcli connection add type ethernet ifname eth1 con-name eth1
[root@proxy ~]# sed -i '/BOOTPROTO/s/dhcp/none/' /etc/sysconfig/network-scripts/ifcfg-eth1 #修改eth1网卡获取IP地址为静态IP
[root@proxy ~]# sed -i '/UUID/d' /etc/sysconfig/network-scripts/ifcfg-eth1 #删除eth1网卡UUID字段
[root@proxy ~]# sed -i '$a IPADDR=192.168.2.5' /etc/sysconfig/network-scripts/ifcfg-eth1 #在文件最后一行写入IP地址
[root@proxy ~]# sed -i '$a PREFIX=24' /etc/sysconfig/network-scripts/ifcfg-eth1 #在文件最后一行写入子网掩码
[root@proxy ~]# systemctl restart network #重启网卡
[root@proxy ~]# ip a s #查看IP地址
4.proxy开启路由转发功能,实现web1、web2服务器和外网进行通信,此功能默认是没有打开的
[root@proxy ~]# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf #修改内核参数,开启路由转发
[root@proxy ~]# sysctl -p #刷新配置
5.proxy关闭防火墙,关闭selinux
[root@proxy ~]# systemctl stop firewalld && systemctl disable firewalld #关闭防火墙,禁止开机自启
[root@proxy ~]# sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config #关闭selinux,重启后生效
[root@proxy ~]# sed -n 'p' /etc/selinux/config #检查配置
6.proxy安装ipvsadm,创建虚拟服务器
[root@proxy ~]# yum -y install ipvsadm.x86_64 #安装ipvsadm
说明
ipvsadm已经被集成到了Centos7的安装包中,直接yum安装即可
[root@proxy ~]# ipvsadm -A -t 192.168.4.5:80 -s wrr #创建虚拟服务器
说明
-A(add)是创建添加虚拟服务器集群
-t(tcp)后面指定集群VIP的地址和端口,协议是tcp协议
-s后面指定调度算法,如rr(轮询)、wrr(加权轮询)、lc(最少连接)、wlc(加权最少连接)等
[root@proxy ~]# ipvsadm -Ln #查看规则
7.proxy虚拟服务器加入真实节点服务器
[root@proxy ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.100 -w 1 -m
[root@proxy ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.200 -w 1 -m
[root@proxy ~]# ipvsadm -Ln
说明
-a(add)往虚拟服务器集群中添加后端真实服务器IP,指定往-t 192.168.4.5:80这个集群中添加
-r(real)后面跟后端真实服务器的IP和端口,这里不写端口默认是80端口
-w(weight)指定服务器的权重,权重越大被访问的次数越多,英语词汇:weight(重量,分量)
-m指定集群工作模式为NAT模式,如果是-g则代表使用DR模式,-i代表TUN模式
8.客户端使用curl访问http://192.168.4.5:80,web1和web2的测试界面轮询出现,表示配置成功
[root@client ~]# curl 192.168.4.5:80