目录
一、实验准备
二、数据流向
三、部署LVS-NAT集群实验
3.1、部署共享存储(NFS服务器:192.168.59.14)
创建共享目录,并设置权限
输入网页内容
设置共享目录
发布共享
3.2、配置节点服务器(web1和web2)
查看共享目录
挂载共享目录
修改网卡
3.3、配置lvs负载调度器(内网关:192.168.59.11 外网关:192.168.130.11)
开启路由转发功能
配置SNAT转发规则
加载lvs内核模块
安装ipvsadm管理工具
启动前要保存负载分配策略
配置负载分配策略(nat模式只要在服务器上配置,节点服务器不需要特殊配置)
修改外网、内网的网卡
3.4、进行测试
出现的报错
负载调节器(lvs):内网关 ens33:192.168.59.11 外网关:192.168.130.11
web节点服务器1:192.168.59.12
web节点服务器2:192.168.59.13
NFS服务器:192.168.59.14
客户端:192.168.130.102
部署前需要了解的是关闭所有服务器的防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
在内网的服务器因为无法连接网络,所以需要配置本地yum仓库(shell一键配置本地yum库)
#!/bin/bash
mount /dev/cdrom /mnt
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
touch /etc/yum.repos.d/local.repo
echo "
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0
" > /etc/yum.repos.d/local.repo
yum cleam all
yum makecache
yum -y install nfs-utils rpcbind
systemctl start nfs
systemctl start rpcbind
mkdir /opt/db1 /opt/db2
chmod 777 /opt/db1 /opt/db2
echo "i am web1" > db1/index.html
echo "i am web2" > db2/index.html
vim /etc/exports
/opt/db1 192.168.59.0/24(rw,sync)
/opt/db2 192.168.59.0/24(rw,sync)
ro 该主机对该共享目录有只读权限
rw 该主机对该共享目录有读写权限
root_squash 客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户
no_root_squash 客户机用root访问该共享文件夹时,不映射root用户
all_squash 客户机上的任何用户访问该共享目录时都映射成匿名用户
anonuid 将客户机上的用户映射成指定的本地用户ID的用户
anongid 将客户机上的用户映射成属于指定的本地用户组ID
sync 资料同步写入到内存与硬盘中
async 资料会先暂存于内存中,而非直接写入硬盘
insecure 允许从这台机器过来的非授权访问
exportfs -rv
两台主机安装nfs服务
yum -y install nfs-utils rpcbind
systemctl start nfs
systemctl start rpcbind
showmount -e 192.168.59.14
在挂载前需要在两台web服务器上安装httpfuwu
web1
mount.nfs 192.168.59.14:/opt/db1 /var/www/html
web2
mount.nfs 192.168.59.14:/opt/db2 /var/www/html
更改web1和web2服务器的网关,指向lvs的内网网卡(内网关 ens33:192.168.59.11)
web1
vim /etc/sysconfig/network-scripts/ifcfg-ens33
systemctl restart network
web2
vim /etc/sysconfig/network-scripts/ifcfg-ens33
systemctl restart network
vim /etc/sysctl.conf
添加 net.ipv4.ip_forward = 1
sysctl -p
iptables -F #清空防火墙规则
iptables -t nat -F #清空nat表中的路由规则
iptables -t nat -A POSTROUTING -s 192.168.59.0/24 -o ens36 -j SNAT --to-source 192.168.130.101
查看一下
modprobe ip_vs #加载ip_vs模块
cat /proc/net/ip_vs #查看ip_vs版本信息
yum -y install ipvsadm
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm
ipvsadm -C #清除原有策略
ipvsadm -A -t 192.168.130.11:80 -s rr
-A:添加虚拟服务器 -t:VIP ,虚拟IP所用外网网卡 -s:算法rr轮询
ipvsadm -a -t 192.168.130.11:80 -r 192.168.59.12:80 -m
-a:添加真实服务器 -t:VIP ,-r:真实IP地址 -m:表示使用nat模式
ipvsadm -a -t 192.168.130.11:80 -r 192.168.59.13:80 -m
ipvsadm #启用策略
ipvsadm -ln #查看节点状态,Masq代表 NAT模式
ipvsadm-save > /etc/sysconfig/ipvsadm #保存策略
将网关改为自己的IP
vim /etc/sysconfig/network-scripts/ifcfg-ens33
vim /etc/sysconfig/network-scripts/ifcfg-ens36
systemctl restart network #重启一下网卡
访问外网主机
刷新一下
这样就达到了lvs的nat模式下的负载均衡
我们在访问的时候可能会出现这种情况,这时因为我们配置了本地yum源而导致的
我们只需要找到问题主机的httpd.conf文件
vim /etc/httpd/conf/httpd.conf
将其注释就行了。