架构图,需要三台RS进行轮询访问,则架构图会和下图有点差距。
节点规划
主机 角色 系统 网络 IP
client client redhat 9.5 NAT 192.168.19.100/24
lvs lvs redhat 9.5 NAT、仅主机 192.168.111.111.27/24
nginx rs1 redhat 9.5 NAT 192.168.111.111.7/24
nginx rs2 redhat 9.5 NAT 192.168.111.111.17/24
nginx rs3 redhat 9.5 NAT 192.168.111.111.27/24
注意:本实验所有防火墙均关闭。setenforce 均为0
配置nginx
默认rs三台主机都下载nginx。
rs1
1.写入页面
[root@rs1 ~]# echo $(hostname -I) > /usr/share/nginx/html/index.html
2.重启服务
[root@rs1 ~]# systemctl restart nginx3.测试nginx
[root@rs1 ~]# curl 192.168.111.17
192.168.111.17
注:其他两台均相同操作
配置lvs
修改虚拟网络
[root@localhost ~] # hostnamectl hostname lvs[root@localhost ~] # nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.19.200/24 ipv4.gateway 192.168.19.2 ipv4.dns 223.5.5.5 connection.autoconnect yes[root@localhost ~] # nmcli c up ens160
安装软件
[root@lvs ~] # dnf install ipvsadm -y
配置 NAT模式的网卡
[root@lvs ~] # nmcli c modify ens224 ipv4.method manual ipv4.addresses192.168.111.8/24 ipv4.gateway 192.168.111.2 connection.autoconnect yes[root@lvs ~] # nmcli c up ens224Connection successfully activated (D-Bus active path:/org/freedesktop/NetworkManager/ActiveConnection/5)
做 LVS 规则匹配
[root@lvs ~] # ipvsadm -A -t 192.168.19.200:80 -s rr# 为规则增加 RS[root@lvs ~] # ipvsadm -a -t 192.168.19.200:80 -r 192.168.111.7:80 -m -w 2[root@lvs ~] # ipvsadm -a -t 192.168.19.200:80 -r 192.168.111.17:80 -m - w 2[root@lvs ~] # ipvsadm -a -t 192.168.19.200:80 -r 192.168.111.17:80 -m - w 2[root@lvs ~] # ipvsadm -LnIP Virtual Server version 1 .2.1 (size = 4096 )Prot LocalAddress:Port Scheduler Flags- > RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 192 .168.10.200:80 rr- > 192 .168.111.7:80 Masq 2 0 0- > 192 .168.72.111:80 Masq 2 0 0-> 192.168.72.111:80 Masq 2 0 0
配置内核参数
[root@lvs ~] # echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf配置好后执行如下的命令来生效。[root@lvs ~] # sysctl -p
配置客户端
[root@localhost ~] # hostnamectl hostname client[root@localhost ~] # nmcli c modify ens160 ipv4.method manualipv4.addresses 192.168.19.100/24 ipv4.gateway 192.168.19.2 ipv4.dns223.5.5.5 connection.autoconnect yes[root@localhost ~] # nmcli c up ens160
功能测试
启动ipvsadm来测试服务
[root@lvs ~]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@lvs ~]# systemctl start ipvsadm
在客户端测试
[root@client ~]# curl 192.168.19.200
192 .168.111.7[root@client ~] # curl 192.168.19.200192 .168.111.17[root@client ~] # curl 192.168.19.200192 .168.111.27[root@client ~] # curl 192.168.19.200192 .168.111.7[root@client ~] # curl 192.168.19.200192 .168.111.17[root@client ~] # curl 192.168.19.200192 .168.111.27[root@client ~] # curl 192.168.19.200192 .168.111.7