【实验】DR模式LVS负载均衡集群部署

一、架构图

在这里插入图片描述
客户端:centos7,ip:192.168.41.42
LVS:centos7,ip:ens33为192.168.41.43,ens33:0为192.168.41.100(VIP地址(虚拟IP))
apache:centos7,ip:ens33为192.168.41.44,lo:0为192.168.41.100
apache:centos7,ip:ens33为192.168.41.45,lo:0为192.168.41.100
NFS:centos7,ip:192.168.41.46

二、工作原理分析

请求:客户端➡LVS➡Web集群
回复:Web集群中的某一Web服务器➡路由器➡客户端

具体分析:客户端发送请求到LVS的VIP(虚拟地址),LVS通过负载均衡策略将数据包转发到web服务器集群;Web服务器集群收到LVS转发过来的请求,通过分析数据包中的源IP地址,将包通过路由器直接回给客户端。也就是说,LVS只承担了访问的流量,并不承担回包的流量。

注:LVS必须和web集群在同一内部网络;在回包过程中,web集群的服务器会以VIP为源地址进行回包;如果客户端与服务器集群是跨网段的(客户端通过外网访问),则集群服务器回通过路由器中的路由策略进行回包。

三、实践

1.NFS服务器搭建

NFS服务器在192.168.41.46上搭建

mkdir /share   #创建共享目录
mkdir -p /share/apache   #创建apache服务访问路径
mkdir -p /share/nginx    #创建nginx访问路径
echo "this is apache server" > /share/apache/index.html   #创建apache访问文件
echo "this is nginx server" > /share/nginx/index.html   #创建nginx访问文件
vim /etc/exports   #编辑exports文件进行共享目录配置
/share/nginx 192.168.41.0/24(rw,no_root_squash,sync)
/share/apache 192.168.41.0/24(rw,no_root_squash,sync)
#编辑完毕,:wq保存退出
systemctl start nfs   #开启nfs服务
systemctl start rpcbind   #开启rpcbind服务
showmount -e 192.168.41.46   #查看共享文件信息

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.Web服务器搭建

nginx服务器在192.168.41.45运行

--------------------45服务器搭建nginx-------------------------
注:nginx服务器搭建有多种方式,我们既可以通过yum源的方式进行搭建,也
可以通过安装包编译安装;二者的区别在于:1.安装位置可能不同,yum安装是
在/usr/share/nginx目录下,而编译安装需要我们自己手动设定安装目录;2.
安装模块可能不同,yum安装的模块是官方给定的,而编译安装可以手动设定安
装哪些模块;3.yum安装直接会帮助我们解决依赖关系的安装,而编译安装需要
我们在安装nginx前将依赖安装完毕,但是centos的官方源中并没有nginx服务,
需要我们先安装epel额外源。

本次实验采用yum安装

yum install -y epel-release   #安装epel额外源
yum install -y nginx   #安装nginx
showmount -e 192.168.41.46   #查看共享目录
mount 192.168.41.46:/share/nginx /usr/share/nginx/html  #nginx服务器挂载nginx的访问文件
df   #查看挂载信息
ls /usr/share/nginx/html/   #查看html目录下有无index文件,不出意外是有的
cat /usr/share/nginx/html/index.html   #查看index文件
systemctl start nginx   #开启nginx服务
浏览器访问测试

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
apache服务器在192.168.41.44运行

--------------------------46服务器搭建apache-------------------------------
yum install -y httpd   #yum安装apache服务器
showmount -e 192.168.41.46   #查看共享目录
mount 192.168.41.46:/share/apache /var/www/html  #apache服务器挂载apache的访问文件
df   #查看挂载信息
ls /var/www/html/   #查看html目录下有无index文件,不出意外是有的
cat /var/www/html/index.html   #查看index文件
systemctl start httpd   #开启apache服务
浏览器访问测试

在这里插入图片描述
在这里插入图片描述

3.apache服务器网络设置

nginx服务器同理

cd /etc/sysconfig/network-scripts/   #切换到网卡配置存放目录
cp ifcfg-lo ifcfg-lo:0   #拷贝一份lo:0的网卡配置文件,方便该虚拟网卡持久化的配置,不会因为重启而需要重新设置
vim ifcfg-lo:0   #编辑虚拟网卡的配置文件
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.41.100
NETMASK=255.255.255.255
#其他的都可以删除,更改完毕后:wq保存退出
systemctl restart network   #重启网络服务
ifconfig   #查看网络信息
------------------------------------------------------
同时,我们还需要修改内核文件,因为客户端访问的是VIP,
而按照我们的配置,LVS、apache、nginx都有VIP,而且
是同一地址,这样就会引起ARP冲突,所以需要修改内核文件,
来抑制apache和nginx服务器的arp冲突问题

vim /etc/sysctl.conf   #修改内核文件
net.ipv4.conf.lo.arp_ignore = 1   #使本机只响应目的IP为本地物理网卡IP的ARP请求
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2 #使本机系统采用发送接口的IP作为ARP请求报文源地址
net.ipv4.conf.all.arp_announce = 2
#:wq保存退出
sysctl -p   #刷新内核文件
route add -host 192.168.41.100 dev lo:0   #添加路由信息,指定地址为VIP地址,指定出站网卡为lo:0
route -n   #查看路由信息
ifup lo:0   #启动lo:0接口
vim /etc/rc.local   #route add 是临时添加的路由信息,如果想要持久化的设置,我们可以将路由添加命令写入rc.local文件,并赋予该文件可执行权限,每次我们开机的时候,就会自动执行rc.local文件中的命令
route add -host 192.168.41.100 dev lo:0
#:wq保存退出
chmod +x /etc/rc.local   #赋予rc.local文件可执行权限
这样,apache服务器的配置就全部完成了(nginx服务器操作一模一样,就不再罗列)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.LVS配置

yum install -y ipvsadm   #yum安装ipvsadm
cd /etc/sysconfig/network-scripts/ 
cp ifcfg-ens33 ifcfg-ens33:0
vim ifcfg-ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.41.100
NETMASK=255.255.255.255
#:wq保存退出
systemctl restart network
ifconfig
modprobe ip_vs   #加载ip_vs模块
ifup ens33:0   #开启ens33:0网卡
vim /etc/sysctl.conf   #由于LVS负载调度器和各节点需要共用VIP地址,需要关闭icmp的重定向,不充当路由器。
net.ipv4.ip_forward = 0   #关闭路由转发功能
net.ipv4.conf.all.send_redirects = 0   #以下三条配置都是关闭icmp的重定向的功能
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
#:wq保存退出
sysctl -p
ipvsadm-save > /etc/sysconfig/ipvsadm
ipvsadm -C
ipvsadm -A -t 192.168.41.100:80 -s rr
ipvsadm -a -t 192.168.41.100:80 -r 192.168.41.44:80 -g
ipvsadm -a -t 192.168.41.100:80 -r 192.168.41.45:80 -g
ipvsadm
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm
ipvsadm -ln
客户端测试访问

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、总结

  1. 注意各服务器的内核文件的配置
  2. 注意各服务器的文件配置
  3. 防火墙一定要关闭(firewalld和selinux)

猜你喜欢

转载自blog.csdn.net/qq_40707090/article/details/124763935