集群负载均衡--LVS(NAT部署)
前言
对于理论不是很了的小伙伴可以看我之前写的博客
链接: https://blog.csdn.net/m0_47219942/article/details/108333675.
一:实验配置
1.1:实验环境
- VMware软件
- 一台centos7作为LVS网关,双网卡
- 两台centos7作为Apache服务器
- 一台centos7作为NFS存储
- 一台win10作为客户端
LVS调度器作为web服务器池的网关,LVS两块网卡,分别连接内外网,使用轮询(rr)调度算法
1.2:实验原理图
1.3:实验目的
- win7客户机访问12.0.0.1的网址,通过nat地址转换,轮询的访问到Apache1和
Apache2主机
- 搭建出nfs网络文件存储服务
1.4:实验步骤
1.4.1:配置NFS服务器
- 安装nfs服务并创建挂载点
[root@localhost ~]# rpm -q rpcbind '自带rpcbind'
rpcbind-0.2.0-47.el7.x86_64
[root@localhost ~]# yum install nfs-utils -y
[root@localhost ~]# cd /opt/
[root@localhost opt]# ls
rh
[root@localhost opt]# mkdir kevin benet
[root@localhost opt]# chmod 777 kevin/ benet/ '改权限'
- 关闭防火墙
iptables -F
setenforce 0
- 选择仅主机模式
- 修改网卡信息
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
'...省略内容,修改为static'
BOOTPROTO=static
'...省略内容,尾行添加内容'
IPADDR=192.168.100.47
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
[root@localhost ~]# systemctl restart network
[root@localhost ~]# ifconfig
- 设置共享目录
[root@localhost opt]# vim /etc/exports '设置共享目录'
/opt/kevin 192.168.100.0/24(rw,sync)
/opt/benet 192.168.100.0/24(rw,sync)
[root@localhost opt]# systemctl start rpcbind
[root@localhost opt]# systemctl start nfs
[root@localhost opt]# exportfs -rv '查看本机发布的NFS共享目录'
exporting 192.168.100.0/24:/opt/benet
exporting 192.168.100.0/24:/opt/kevin
2.4.2:配置两台Apache服务器
- 两台Apache服务器安装httpd并关闭防火墙
yum install httpd -y
systemctl stop firewalld.service
setenforce 0
-
两台都选择仅主机模式
-
修改两台Apache服务器的IP地址
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
'...省略内容,修改为static'
BOOTPROTO=static
'...省略内容,尾行添加内容'
IPADDR=192.168.100.52
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
[root@localhost ~]# systemctl restart network
[root@localhost ~]# ifconfig
[root@localhost ~]# showmount -e 192.168.100.55
Export list for 192.168.100.55:
/opt/benet 192.168.100.0/24
/opt/kevin 192.168.100.0/24
'相同方法修改Apache2'
- 自动挂载nfs共享目录
[root@localhost ~]# vim /etc/fstab
'尾行添加挂载配置'
192.168.100.55:/opt/kevin /var/www/html nfs defaults 0 0
[root@localhost ~]# mount -a
[root@localhost ~]# df -Th
'相同方法配置Apache2服务器'
192.168.100.55:/opt/benet /var/www/html nfs defaults 0 0
- 编辑首页文件
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# vim index.html
<h1>this is kevin web</h1>
'相同方法配置Apache2服务器'
<h1>this is benet web</h1>
2.4.3:配置LVS服务器
- 关闭防火墙
iptables -F
setenforce 0
- 加载ip_vs模块
[root@localhost ~]# modprobe ip_vs
[root@localhost ~]# cat /proc/net/ip_vs
- 安装ipvsadm工具
[root@localhost ~]# yum install ipvsadm -y
-
设置双网卡
-
修改网卡信息
[root@localhost ~]# cd /etc/sysconfig/network-scripts
[root@localhost network-scripts]# cp -p ifcfg-ens33 ifcfg-ens36
[root@localhost network-scripts]# vim ifcfg-ens33
'...省略内容,修改为static'
BOOTPROTO=static
'...省略内容,尾行添加内容'
IPADDR=12.0.0.1
NETMASK=255.255.255.0
[root@lvs network-scripts]# vim ifcfg-ens36
'...省略内容,修改为static'
BOOTPROTO=static
'..省略内容,原本的33改为36'
NAME=ens36
UUID=6ba4ac2f-cb59-454f-9274-b48a6ecadeda '删除此行 UUID'
DEVICE=ens36 '原本的33改为36'
ONBOOT=yes
IPADDR=192.168.100.1
NETMASK=255.255.255.0
2.4.4:win7配置
-
修改win7ip地址
-
设置仅主机模式
2.4.5:保存规则并做测试
- 在LVS服务器上配置
vi nat.sh
#!/bin/bash
echo "1" > /proc/sys/net/ipv4/ip_forward '开启路由转发'
ipvsadm -C
ipvsadm -A -t 12.0.0.1:80 -s rr
ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.48:80 -m '指向Apache服务器地址'
ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.52:80 -m
ipvsadm
[root@localhost network-scripts]# sh nat.sh
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP localhost.localdomain:http rr
-> 192.168.100.52:http Masq 1 0 0
-> 192.168.100.48:http Masq 1 0 0
-C:'表示清除缓存'
-A:'添加地址为12.0.0.1:80的虚拟地址,指定调度算法为轮转'
-a: '指定真实服务器,指定传输模式为NAT'
-t:'访问的入口地址,VIP'
rr:'表示轮询'
-m:'指的是NAT模式'
2.5:客户端验证
-
打开win7 ,访问12.0.0.1
-
已经成功,采用了轮询算法访问两个网站
-
若不成功,则需要情况缓存再次尝试