部署LVS NAT集群
一、环境准备
确认各虚拟机的 IP 地址信息:
- client:
ens33=192.168.146.200
- LVS:
ens33=192.168.146.100
;ens37=192.168.146.200
- RS1:
ens33=192.168.146.101
- RS2:
ens33=192.168.146.102
确保各虚拟机之间网络连通,可通过ping
命令进行测试,例如在client
虚拟机上ping 192.168.146.100
(LVS 的ens33
网卡 IP),在 LVS 上ping 192.168.146.210
(RS1 的 IP) 等。
二、安装相关软件
1. 在 LVS 虚拟机上
安装ipvsadm
,它是用于管理 LVS 集群的工具:
yum install -y ipvsadm
2. 在 RS1 和 RS2 虚拟机上
安装 Web 服务软件,这里以 Nginx 为例,也可以使用 Apache 等其他 Web 服务器:
yum install -y nginx
三、配置 LVS NAT 集群
1. 配置 LVS 调度规则
在 LVS 虚拟机上,执行以下命令:
- 清空已有的
ipvsadm
规则:
ipvsadm -C
- 添加虚拟服务器(VIP),这里假设 VIP 使用 LVS 的
ens33
网卡 IP192.168.146.100
,端口为 80,使用轮询(rr)调度算法:
ipvsadm -A -t 192.168.146.100:80 -s rr
- 添加后端 Real Server(RS),并指定 NAT 模式(
-m
):
ipvsadm -a -t 192.168.146.100:80 -r 192.168.146.101:80 -m
ipvsadm -a -t 192.168.146.100:80 -r 192.168.146.102:80 -m
- 保存
ipvsadm
规则,防止重启后丢失:
ipvsadm -S > /etc/sysconfig/ipvsadm
没有这个文件则:mkdir /etc/sysconfig/ipvsadm
2. 开启 LVS 的 IP 转发功能
编辑/etc/sysctl.conf
文件,添加或修改以下内容,开启 IP 转发:
net.ipv4.ip_forward = 1
然后执行以下命令使配置生效:
sysctl -p
四、配置后端 Real Server(RS1 和 RS2)
1. 配置默认网关
在 RS1 和 RS2 虚拟机上,将默认网关设置为 LVS 的ens37
网卡 IP 192.168.146.200
。编辑网络配置文件(以ens33
为例,不同系统或网卡名称可能不同),比如/etc/sysconfig/network-scripts/ifcfg-ens33
,添加或修改以下内容:
GATEWAY=192.168.146.200
然后重启网络服务使配置生效:
systemctl restart network
2. 启动 Web 服务并自定义页面
在 RS1 和 RS2 上分别启动 Nginx 服务:
systemctl start nginx
为了区分后端服务器,分别编辑 RS1 和 RS2 上的 Nginx 默认首页:
- 在 RS1 上:
echo "This is RS1" > /usr/share/nginx/html/index.html
- 在 RS2 上:
echo "This is RS2" > /usr/share/nginx/html/index.html
五、测试 LVS NAT 集群
在client
虚拟机上,安装curl
工具用于测试访问:
yum install -y curl
多次执行以下命令访问 LVS 的 VIP(即192.168.146.100
):
curl 192.168.146.100
预期结果是,多次访问后,页面输出会交替显示This is RS1
和This is RS2
,这表明 LVS NAT 集群成功将请求分发给后端的不同 Real Server。
六、补充说明
- 如果在实验过程中遇到网络不通等问题,可检查防火墙设置,建议在测试阶段关闭防火墙(
systemctl stop firewalld
,systemctl disable firewalld
)或开放相关端口(如 80 端口)。 - 上述实验步骤中,对于网络配置文件的编辑操作,不同 Linux 发行版可能存在细微差异,需要根据实际情况进行调整。
- 如果使用 Apache 替代 Nginx,安装命令为
yum install -y httpd
,启动命令为systemctl start httpd
,首页路径为/var/www/html/index.html
。