目录
LVS/NAT模式
一. 环境准备
二. 对虚拟服务器操作
三. 对真实服务器操作
四. 打开网站验证
LVS/NAT模式
一. 环境准备
主机名 | 主机IP | 模拟服务器 | 系统 | 用途 |
localhost | 10.36.178.156 192.168.226.137 | 虚拟服务器 | Rocky_linux | 客户兼负载均衡机分发IP |
localhost | 192.168.226.10 | 真实服务器 | Centos7 | 后端服务 |
localhost | 192.168.226.99 | 真实服务器 | Rocky_linux | 后端服务 |
统一关闭防火墙和selinux,系统发行版选择会用就可以,这里也是两种一起使用学习。
二. 对虚拟服务器操作
在设置中添加一块网卡,一个使用桥接模式,一个使用NAT模式,然后打开虚拟机。
查看ip,有两个不同网段IP就成功了。
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::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 1000link/ether 00:0c:29:d9:a7:1d brd ff:ff:ff:ff:ff:ffaltname enp2s1inet 10.36.178.156/24 brd 10.36.178.255 scope global dynamic noprefixroute ens33valid_lft 347sec preferred_lft 347secinet6 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 1000link/ether 00:0c:29:d9:a7:27 brd ff:ff:ff:ff:ff:ffaltname enp2s5inet 192.168.226.137/24 brd 192.168.226.255 scope global dynamic noprefixroute ens37valid_lft 929sec preferred_lft 929secinet6 fe80::553c:db7a:2d1b:33c/64 scope link noprefixroute valid_lft forever preferred_lft forever
下载ipvsadm
yum install -y ipvsadm
添加虚拟服务器和真实服务器,并设置一台权重为3,一台为1,权重设置无分别
ipvsadm -A -t 10.36.178.156:80 -s wrr
ipvsadm -a -t 10.36.178.156:80 -r 192.168.226.10:80 -m -w 3
ipvsadm -a -t 10.36.178.156:80 -r 192.168.226.99:80 -m -w 1
ipvsadm-save > /etc/sysconfig/ipvsadm
启动服务并设置开机自启
systemctl enable --now ipvsadm
三. 对真实服务器操作
对192.168.226.10和192.168.226.99都操作
下载nginx
yum install -y nginx
修改内容和配置
vim /etc/nginx/nginxconf +27#这个参数设置为keepalive_timeout 0; 把参数改成0即可
修改默认打开的网站用来识别来自哪个服务器对192.168.226.10执行
echo "web-server111111" > /usr/share/nginx/html/index.html对192.168.226.99执行
echo "web-server111111" > /usr/share/nginx/html/index.html
开启服务并设置开机自启
systemctl start nginx
systemctl enable nginx
配置默认路由
ip route add default via 192.168.226.137
开启路由转发
vim /etc/sysctl.conf#加入如下内容
net.ipv4.ip_forward = 1
确保打开路由转发,加载sysctl.conf配置
sysctl -p
查看路由表
[root@localhost ~]# ip r
default via 192.168.226.137 dev ens33
default via 192.168.226.2 dev ens33 proto static metric 100
192.168.226.0/24 dev ens33 proto kernel scope link src 192.168.226.10 metric 100
使用ip r命令查看到如上有一192.168.226.137的信息即可。
四. 打开网站验证
打开IP应该用虚拟服务器IP ,用10.36.178.156 多次刷新网页访问。使用命令查看信息
#在10.36.178.156的虚拟服务器上执行查看
ipvsadm -L -n --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes-> RemoteAddress:Port
TCP 10.36.178.156:80 4 77 49 18529 7538-> 192.168.226.10:80 3 59 37 14582 5367-> 192.168.226.99:80 1 18 12 3947 2171
因为前面我们添加虚拟服务器是,给虚拟服务器IP执行的是wrr加权轮询,然后给192.168.226.10设置的权重为3,192.168.226.99设置的权重为1,然后都配置了nginx连接的超时时间,因此当多次访问,对这两台真实服务器的流量权重分配会大约在3:1的比例。