LVS负载均衡集群企业级应用实战-LVS/NAT模式(三)

目录

LVS/NAT模式

[一. 环境准备](#一. 环境准备)

[二. 对虚拟服务器操作](#二. 对虚拟服务器操作)

[三. 对真实服务器操作](#三. 对真实服务器操作)

[四. 打开网站验证](#四. 打开网站验证)


LVS/NAT模式

一. 环境准备

统一关闭防火墙和selinux,时间同步,配置好YUM源系统发行版选择会用就可以,这里也是两种一起使用学习。用的不同系统没影响,原理一样,都用centos7也可以。

|-----------|---------------------------------------|-------|-------------|-----------|
| 主机名 | 主机IP | 模拟服务器 | 系统 | 用途 |
| localhost | VIP:10.36.178.156 DIP:192.168.226.137 | 虚拟服务器 | Rocky_linux | 负载均衡机分发IP |
| localhost | 192.168.226.99 | 真实服务器 | Centos7 | 后端服务 |
| localhost | 192.168.226.10 | 真实服务器 | Rocky_linux | 后端服务 |
| localhost | 10.36.178.56 | 客户端 | windows10 | 当成客户访问 |

二. 对虚拟服务器操作

注意:这里是对虚拟服务器,对应好别操作错主机

在设置中添加一块网卡,一个使用桥接模式,一个使用NAT模式,然后打开虚拟机。

查看ip,有两个不同网段IP就成功了。

复制代码
[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 10.36.178.156/24 brd 10.36.178.255 scope global dynamic noprefixroute ens33
       valid_lft 347sec preferred_lft 347sec
    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 929sec preferred_lft 929sec
    inet6 fe80::553c:db7a:2d1b:33c/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

下载ipvsadm

bash 复制代码
yum install -y ipvsadm

添加虚拟服务器和真实服务器,并设置一台权重为3,一台为1,权重设置无分别,然后保存规则

bash 复制代码
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

启动服务并设置开机自启

bash 复制代码
systemctl enable --now ipvsadm

三. 对真实服务器操作

对192.168.226.10和192.168.226.99都操作

下载nginx

bash 复制代码
yum install -y nginx

修改内容和配置

bash 复制代码
vim /etc/nginx/nginxconf +27

#这个参数设置为keepalive_timeout   0;  把参数改成0即可
bash 复制代码
修改默认打开的网站用来识别来自哪个服务器

对192.168.226.10执行
echo "web-server111111" > /usr/share/nginx/html/index.html

对192.168.226.99执行
echo "web-server222222" > /usr/share/nginx/html/index.html

开启服务并设置开机自启

bash 复制代码
systemctl start nginx
systemctl enable nginx

配置默认路由,这个IP就是虚拟主机中另一个nat模式的IP,这个IP要和真实服务器在同一个网段,这样才可以通信。

bash 复制代码
ip route add default via 192.168.226.137

开启路由转发

bash 复制代码
vim /etc/sysctl.conf

#加入如下内容
net.ipv4.ip_forward = 1

确保打开路由转发,加载sysctl.conf配置

bash 复制代码
sysctl -p

查看路由表,发现下面有刚添加的信息就表示成功了。

bash 复制代码
[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 多次刷新网页访问。使用命令查看信息

bash 复制代码
#在10.36.178.156的虚拟服务器上执行查看
ipvsadm -L -n --stats
bash 复制代码
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的比例。推荐使用浏览器的无痕模式打开。

相关推荐
数智化管理手记2 小时前
精益生产中的TPM管理是什么?一文破解设备零故障的密码
服务器·网络·数据库·低代码·制造·源代码管理·精益工程
@insist1234 小时前
网络工程师-生成树协议(STP/RSTP/MSTP)核心原理与应用
服务器·开发语言·网络工程师·软考·软件水平考试
zzzsde7 小时前
【Linux】库的制作和使用(3)ELF&&动态链接
linux·运维·服务器
CQU_JIAKE7 小时前
4.3【A]
linux·运维·服务器
AI周红伟7 小时前
OpenClaw是什么?OpenClaw能做什么?OpenClaw详细介绍及保姆级部署教程-周红伟
大数据·运维·服务器·人工智能·微信·openclaw
TechWayfarer7 小时前
科普:IP归属地中的IDC/机房/家庭宽带有什么区别?
服务器·网络·tcp/ip
Amctwd8 小时前
【Linux】OpenCode 安装教程
linux·运维·服务器
KOYUELEC光与电子努力加油8 小时前
JAE日本航空端子推出支持自走式机器人的自主充电功能浮动式连接器“DW15系列“方案与应用
服务器·人工智能·机器人·无人机
和小潘一起学AI8 小时前
SHH隧道内网穿透
运维·服务器
AC赳赳老秦10 小时前
OpenClaw二次开发入门:自定义技能,适配自身工作需求
服务器·数据库·python·mysql·django·deepseek·openclaw