目录
[一. 环境准备](#一. 环境准备)
[二. 对虚拟主机操作](#二. 对虚拟主机操作)
[三. 对真实服务器操作](#三. 对真实服务器操作)
[四. 打开网页测试](#四. 打开网页测试)
LVS-DR
一. 环境准备
三台虚拟机,都要在同一网段内,统一关闭防火墙和selinux,时间同步,配置好YUM源。系统用centos和roucky都行。
|-----------|-------------------------------------------|-------|-------------|-----------|
| 主机名 | 主机IP | 模拟服务器 | 系统 | 用途 |
| localhost | VIP: 192.168.226.136 DIP: 192.168.226.137 | 虚拟服务器 | Rocky_linux | 负载均衡机分发IP |
| localhost | 192.168.226.100 | 真实服务器 | Centos7 | 后端服务 |
| localhost | 192.168.226.99 | 真实服务器 | Centos7 | 后端服务 |
| localhost | 10.35.186.197 | 客户端 | windows10 | 当成客户访问 |
二. 对虚拟主机操作
注意:这里是对虚拟主机操作,规划好主机
在设置中添加一块网卡,两个网卡都使用NAT模式,然后打开虚拟机。
查看ip,有两个不同网段IP就成功了。
bash
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:d9:a7:1d brd ff:ff:ff:ff:ff:ff
altname enp2s1
inet 192.168.226.136/24 brd 192.168.226.255 scope global dynamic noprefixroute ens33
valid_lft 1169sec preferred_lft 1169sec
inet6 fe80::27d2:b5dd:fed:2361/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:d9:a7:27 brd ff:ff:ff:ff:ff:ff
altname enp2s5
inet 192.168.226.137/24 brd 192.168.226.255 scope global dynamic noprefixroute ens37
valid_lft 1169sec preferred_lft 1169sec
inet6 fe80::553c:db7a:2d1b:33c/64 scope link noprefixroute
valid_lft forever preferred_lft forever
下载ipvsadm
bash
yum install -y ipvsadm
添加虚拟服务器和真实服务器,并设置算法,这里用rr,然后保存规则。
bash
ipvsadm -A -t 192.168.226.136:80 -s rr
ipvsadm -a -t 192.168.226.136:80 -r 192.168.226.99:80
ipvsadm -a -t 192.168.226.136:80 -r 192.168.226.100:80 -g
ipvsadm-save > /etc/sysconfig/ipvsadm
#添加真实服务器时,后面的-g是指定DR模式,默认也就是DR模式,不写就是使用默认的,NAT需要使用-m参数
注意:使用ipvsadm -ln 检查是否配置正确
bash
[root@localhost ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.226.136:80 rr
-> 192.168.226.99:80 Route 1 0 0
-> 192.168.226.100:80 Route 1 0 0
启动服务并设置开机自启
bash
systemctl enable --now ipvsadm
三. 对真实服务器操作
对192.168.226.99和192.168.226.100操作
下载nginx
bash
yum install -y nginx
bash
修改默认打开的网站用来识别来自哪个服务器
#对192.168.226.99执行
echo "web-server111111" > /usr/share/nginx/html/index.html
#对192.168.226.100执行
echo "web-server222222" > /usr/share/nginx/html/index.html
开启服务并设置开机自启
bash
systemctl start nginx
systemctl enable nginx
在lo接口上绑定VIP
bash
ip addr add dev lo 192.168.226.136/32
忽略arp广播
bash
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
匹配精确ip地址回包
bash
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
重启nginx
bash
systemctl restart nginx
四. 打开网页测试
在windows中应访问VIP,即192.168.226.136,打开浏览器进入无痕模式输入IP即可看到信息,多次刷新,也可看到两个主机会切换,记得用无痕模式,有些时候浏览器缓存会导致刷新并不会切换网页信息。因为我们添加真实服务器IP时,没有指定权重,那么默认两个权重是一样的,所以多次刷新,跳转页面的比例应在1:1左右。