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的比例。推荐使用浏览器的无痕模式打开。

相关推荐
运维小文16 分钟前
服务器硬件介绍
运维·服务器·计算机网络·缓存·硬件架构
小周不摆烂23 分钟前
丹摩征文活动 | 丹摩智算平台:服务器虚拟化的璀璨明珠与实战秘籍
大数据·服务器
中云DDoS CC防护蔡蔡24 分钟前
为什么海外服务器IP会被封
服务器·经验分享
是安迪吖27 分钟前
nfs服务器
运维·服务器
鱼骨不是鱼翅28 分钟前
模拟回显服务器
运维·服务器
EasyCVR1 小时前
ISUP协议视频平台EasyCVR视频设备轨迹回放平台智慧农业视频远程监控管理方案
服务器·网络·数据库·音视频
Elastic 中国社区官方博客1 小时前
使用真实 Elasticsearch 进行更快的集成测试
大数据·运维·服务器·数据库·elasticsearch·搜索引擎·集成测试
PcVue China5 小时前
PcVue + SQL Grid : 释放数据的无限潜力
大数据·服务器·数据库·sql·科技·安全·oracle
舞动CPU7 小时前
linux c/c++最高效的计时方法
linux·运维·服务器
钰@8 小时前
小程序开发者工具的network选项卡中有某域名的接口请求,但是在charles中抓不到该接口
运维·服务器·小程序