一、实验目的
掌握使用 LVS(Linux Virtual Server)部署 NAT(Network Address Translation)模式集群的方法,实现将前端负载均衡器接收到的请求分发到后端真实服务器,提高系统的可用性和负载处理能力。
二、实验环境
- 服务器:3 台虚拟机,操作系统为 CentOS 7。
- 负载均衡器(LVS):内网网卡IP地址为 10.0.0.11 ,外网网卡IP(vip)为192.168.65.131
- 真实服务器 1(RS1):IP 地址为 10.0.0.12 。
- 真实服务器 2(RS2):IP 地址为 10.0.0.13 。
- 网络配置:所有服务器和lvs处于同一局域网,且具备网络连接以便相互通信。
三、实验步骤
(一)负载均衡器(LVS)配置
- 安装必要软件:在负载均衡器上安装 ipvsadm 工具,用于管理 LVS 规则。
sudo yum install ipvsadm -y
- 配置 IP 地址:确保 10.0.0.11 地址已正确配置在负载均衡器的网络接口上。
- 开启 IP 转发:编辑 sysctl 配置文件,开启内核的 IP 转发功能。
sudo vi /etc/sysctl.conf
添加或修改以下行:
net.ipv4.ip_forward = 1
使配置生效:
sudo sysctl -p
- 配置 LVS 规则:添加 NAT 模式的虚拟服务器规则,将请求转发到后端真实服务器。
ipvsadm -A -t 192.168.65.131:80 -s rr
ipvsadm -a -t 192.168.65.131:80 -r 10.0.0.12 -m
ipvsadm -a -t 192.168.65.131:80 -r 10.0.0.13 -m
参数解释:
-A
:添加虚拟服务器。-t
:指定虚拟服务器的 IP 地址和端口,这里是 192.168.65.131:80 。-s rr
:使用轮询(Round Robin)调度算法。-p 60
:设置会话保持时间为 60 秒。-a
:添加真实服务器。-r
:指定真实服务器的 IP 地址和端口。-m
:使用 NAT 模式。
2.查看lvs规则
ipvsadm -Ln
3.保存规则:规则是保存在内核中的,而不是直接保存到某个文件中。这意味着配置是动态的,并且只要系统保持运行状态,这些规则就会一直有效。
ipvsadm -S > /etc/sysconfig/ipvsadm
(二)真实服务器(RS1 和 RS2)配置
- 安装 Web 服务:在两台真实服务器上安装 Nginx 作为 Web 服务示例。
sudo yum install nginx -y
- 启动 Web 服务:启动 Nginx 并设置开机自启。
sudo systemctl start nginx
sudo systemctl enable nginx
- 修改 Web 页面内容:为区分两台真实服务器的响应,分别修改 Nginx 的默认页面内容。
在 RS1 上:
sudo vi /usr/share/nginx/html/index.html
添加内容:
<h1>This is RS1</h1>
在 RS2 上:
sudo vi /usr/share/nginx/html/index.html
添加内容:
<h1>This is RS2</h1>
- 配置默认网关:将真实服务器的默认网关设置为负载均衡器的 IP 地址 10.0.0.11 。
编辑网络配置文件,例如:
sudo vi /etc/sysconfig/network - scripts/ifcfg - ens160
添加或修改以下行:
GATEWAY=10.0.0.11
重启网络服务使配置生效:
sudo systemctl restart network
(三)测试集群
- 关闭防火墙和 SELinux:在负载均衡器和真实服务器上暂时关闭防火墙和 SELinux,方便测试。
在负载均衡器上:
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
在真实服务器上执行相同操作。
2. 测试访问:在浏览器中输入负载均衡器的 IP 地址 192.168.65.131 ,多次刷新页面,观察是否交替显示 “This is RS1” 和 “This is RS2”,以此验证 LVS NAT 模式集群是否正常工作。
四、实验总结
通过本次实验,成功搭建了 LVS NAT 模式集群,实现了负载均衡器将前端请求分发到后端真实服务器的功能。在实验过程中,需要注意网络配置、服务启动以及 LVS 规则的正确性。实际应用中,还可以根据需求调整调度算法、增加真实服务器数量等,进一步优化集群性能。