LVS/NAT负载均衡实操

添加规则,并做持久操作

1 添加规则

[root@lvs ~]# ipvsadm -A -t 10.36.178.183:80 -s wrr
[root@lvs ~]# ipvsadm -a -t 10.36.178.183:80 -r 192.168.65.201:80 -m -w 3
[root@lvs ~]# ipvsadm -a -t 10.36.178.183:80 -r 192.168.65.202:80 -m -w 1

[root@lvs ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.36.178.183:80 wrr
  -> 192.168.65.201:80            Masq    3      0          0
  -> 192.168.65.202:80            Masq    1      0          0

2 持久操作

单纯添加,重启服务器后,规则会失效。为了不让规则失效,我们可以这样做:

第一种:将规则导入到文本文件中,然后手动导入规则

[root@lvs ~]# ipvsadm -S
-A -t lvs.com:http -s wrr
-a -t lvs.com:http -r node1:http -m -w 3
-a -t lvs.com:http -r node2:http -m -w 1

[root@lvs ~]# ipvsadm -S -n		# -n: 以数字形式显示
-A -t 10.36.178.183:80 -s wrr
-a -t 10.36.178.183:80 -r 192.168.65.201:80 -m -w 3
-a -t 10.36.178.183:80 -r 192.168.65.202:80 -m -w 1

# 将规则导入到ipvsrule文件中
[root@lvs ~]# ipvsadm -S -n > ./ipvsrule
[root@lvs ~]# cat ipvsrule
-A -t 10.36.178.183:80 -s wrr
-a -t 10.36.178.183:80 -r 192.168.65.201:80 -m -w 3
-a -t 10.36.178.183:80 -r 192.168.65.202:80 -m -w 1

# 清除规则
[root@lvs ~]# ipvsadm -C	

# 查看规则,为空
[root@lvs ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
  
# 导入规则
[root@lvs ~]# ipvsadm -R < ipvsrule
# 查看规则

第二种:开启ipvsadm服务,创建存放规则的配置目录,最后设置ipvsadm开机自启

[root@lvs ~]# systemctl start ipvsadm.service	# 启动失败
Job for ipvsadm.service failed because the control process exited with error code.
See "systemctl status ipvsadm.service" and "journalctl -xeu ipvsadm.service" for details.

[root@lvs ~]# journalctl -xeu ipvsadm.service
# 查看错误原因:"/etc/sysconfig/ipvsadm:没有那个文件" 故咱们自己创建一个
# 再次启动ipvsadm.service就成功了

[root@lvs ~]# touch /etc/sysconfig/ipvsadm
[root@lvs ~]# ipvsadm -R < ipvsrule			    # 手动导入规则

[root@lvs ~]# systemctl start ipvsadm.service	# 启动ipvsadm.service
# 启动ipvsadm.service的时候干哪些事情:
	1.ipvsadm -R < /etc/sysconfig/ipvsadm
[root@lvs ~]# systemctl enable ipvsadm.service --now

[root@lvs ~]# systemctl stop ipvsadm.service	# 停止ipvsadm.service
# 停止ipvsadm.service时干哪些事情: 
	1.先保存规则到/etc/sysconfig/ipvsadm
	2.ipvsadm -C

LVS 负载均衡集群企业级应用实战

1LVS/NAT模式

1.配置规则

[root@lvs ~]# ipvsadm -A -t 10.36.178.183:80 -s wrr
[root@lvs ~]# ipvsadm -a -t 10.36.178.183:80 -r 192.168.65.201:80 -m -w 3
[root@lvs ~]# ipvsadm -a -t 10.36.178.183:80 -r 192.168.65.202:80 -m -w 1
[root@lvs ~]# ipvsadm -Ln		# 查看规则
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.36.178.183:80 wrr
  -> 192.168.65.201:80            Masq    3      0          0
  -> 192.168.65.202:80            Masq    1      0          0

2.为负载均衡器添加一块网卡,保证负载均衡器和服务器正常通信

负载均衡器左边是桥接模式,连接客户端,右边是NAT模式连接后台服务器,因此负载均衡器需要两张网卡(桥接与NAT)。

​ 负载均衡器左边桥接模式ip作用:桥接网段用户能够通过负载均衡器连接到服务器。

​ 负载均衡器右边NAT模式ip作用:连接后端两台服务器。

image-20240613174252819

  • 添加网卡时需要注意:

​ 因为我是直接复制的/etc/NetworkManager/system-connections/ens33.nmconnectionens33.nmconnection,导致ens33和ens36网卡的uuid一样,一直起不来ens36。

  • 解决办法:删掉复制过来的uuid即可。

3.开启路由转发,让NAT可以连接到桥接

[root@lvs ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@lvs ~]# sysctl -p	# 确保打开路由转发,加载sysctl.conf配置

4.两台服务器将lvs作为网关

# 添加一条指向到负载均衡器的路由,ip为负载均衡器内能够与后端服务器通信的ip
[root@node1 ~]# ip r add default via 192.168.65.168
[root@node2 ~]# ip r add default via 192.168.65.168
[root@node1 ~]# ip r		# 查看路由
default via 192.168.65.168 dev ens33
default via 192.168.65.2 dev ens33 proto static metric 100

如果不设置lvs作为网关的话,这两台服务器就只有输入,没有输出。

image-20240613174408497

5.两台服务器安装nginx

[root@node1 ~]# yum install -y nginx
[root@node2 ~]# yum install -y nginx
[root@node1 ~]# rm -rf /usr/share/nginx//html/*
[root@node2 ~]# rm -rf /usr/share/nginx//html/*

6.配置nginx文件

[root@node1 ~]# vim /etc/nginx/nginx.conf
# keepalive_timeout:Nginx 处理的每个请求均有相应的超时设置
keepalive_timeout  65; ==> keepalive_timeout   0;
[root@node2 ~]# vim /etc/nginx/nginx.conf
keepalive_timeout  65; ==> keepalive_timeout   0;

# curl没有请求超时
[root@lvs ~]# curl http://10.36.178.183 

7.查看规则

[root@lvs ~]# ipvsadm -Ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port         Conns   InPkts  OutPkts  InBytes OutBytes
  -> RemoteAddress:Port
TCP  10.36.178.183:80             63     1199      646   240404    68671
  -> 192.168.65.201:80            47     1031      552   223177    61187
  -> 192.168.65.202:80            16      168       94    17227     7484

[root@lvs ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port        Forward Weight ActiveConn InActConn
TCP  10.36.178.183:80 wrr
  -> 192.168.65.201:80            Masq    3      2          13
  -> 192.168.65.202:80            Masq    1      0          4
  
[root@lvs ~]# ipvsadm -Z	# 虚拟服务器表计数(当前连接数量)清零
[root@lvs ~]# ipvsadm -Ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port         Conns   InPkts  OutPkts  InBytes OutBytes
  -> RemoteAddress:Port
TCP  10.36.178.183:80           0        0        0        0        0
  -> 192.168.65.201:80          0        0        0        0        0
  -> 192.168.65.202:80          0        0        0        0        0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/706542.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第2章 Rust初体验4/8:提供标准库之外功能的Library Crate:简化包管理和依赖管理:猜骰子冷热游戏

讲动人的故事,写懂人的代码 2.4 故事2: 生成点数之和的随机答案 又是新的一天,大家的培训课又开始了哦!现在,我们的学员们开始用三种语言来实现故事2,加油! 2.4.1 Rust版故事2 2.4.1.1 提供标准库之外功能的Library Crate:简化包管理和依赖管理 贾克强:“我们的故事…

【JVM】JVisualVM的介绍、使用和GC过程

VisualVM介绍 VisualVM 是Netbeans的profile子项目&#xff0c;已在JDK6.0 update 7 中自带&#xff0c;能够监控线程&#xff0c;内存情况&#xff0c;查看方法的CPU时间和内存中的对 象&#xff0c;已被GC的对象&#xff0c;反向查看分配的堆栈(如100个String对象分别由哪几…

30 岁的程序员,要有 “归零“ 心态

大家好&#xff0c;我是码农先森。 古话说的 “三十而立”&#xff0c;正是担重之时&#xff0c;却大部分人在职场中都处于不上不下的尴尬境地。已经没有刚毕业时那股子冲劲&#xff0c;被生活和工作磨平了棱角。 在技术思想方面&#xff0c;似乎已经触及到了天花板&#xff…

阻容感的串联和并联

文章目录 电阻的串联电容的串联 电阻的串联 电容的串联 CC1C2/(C1C2) 串联后电容反而变小了&#xff0c;所以实际应用中&#xff0c;电容不串联&#xff08;我没见过电容串联使用的&#xff09; 类似于电导的分压&#xff0c; 电容一般是并联使用 电感一般串联使用

鸿蒙轻内核调测-内存调测-内存泄漏检测

1、基础概念 内存泄漏检测机制作为内核的可选功能&#xff0c;用于辅助定位动态内存泄漏问题。开启该功能&#xff0c;动态内存机制会自动记录申请内存时的函数调用关系&#xff08;下文简称LR&#xff09;。如果出现泄漏&#xff0c;就可以利用这些记录的信息&#xff0c;找到…

MNIST手写字符分类

MNIST手写字符分类 文章目录 MNIST手写字符分类1 数据集2 模型构建3 训练4 模型保存5 推理6 模型导出7 导出模型测试 1 数据集 MNIST手写字符集包括60000张用于训练的训练集图片和10000张用于测试的测试集图片&#xff0c;所有图片均归一化为28*28的灰度图像。其中字符区域为白…

Vue31-自定义指令:总结

一、自定义函数的陷阱 1-1、自定义函数名 自定义函数名&#xff0c;不能用驼峰式&#xff01;&#xff01;&#xff01; 示例1&#xff1a; 示例2&#xff1a; 1-2、指令回调函数的this 【回顾】&#xff1a; 所有由vue管理的函数&#xff0c;里面的this直接就是vm实例对象。…

小主机折腾记26

双独立显卡调用问题 前两天将tesla p4从x99大板上拆了下来&#xff0c;将880G5twr上的rx480 4g安装到了x99大板上&#xff0c;预计是dg1输出&#xff0c;rx480做3d运算。安装完驱动后&#xff0c;还想着按照之前tesla p4的设置方法去设置rx480&#xff0c;结果果然&#xff0c…

边坡监测规范:确保边坡工程安全稳定的专业准则

边坡工程是土木工程中不可或缺的一部分&#xff0c;其安全性直接关系到工程整体的质量与稳定性。因此&#xff0c;在边坡工程中实施有效的监测措施&#xff0c;遵循一系列专业的监测规范&#xff0c;对于预防边坡失稳、滑坡等灾害的发生&#xff0c;保障人民群众的生命财产安全…

使用 Vue 和 Ant Design 实现抽屉效果的模块折叠功能

功能描述&#xff1a; 有两个模块&#xff0c;点击上面模块的收起按钮时&#xff0c;上面的模块可以折叠&#xff0c;下面的模块随之扩展 代码实现&#xff1a; 我们在 Vue 组件中定义两个模块的布局和状态管理&#xff1a; const scrollTableY ref(560); // 表格初始高度…

ssm161基于web的资源共享平台的共享与开发+jsp

资源共享平台设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本资源共享平台就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处…

tkinter滚动条Scrollbar

tkinter滚动条Scrollbar 滚动条Scrollbar滚动条的基本用法效果代码 滚动条Scrollbar 在Tkinter中&#xff0c;**滚动条&#xff08;Scrollbar&#xff09;**是一个允许用户在较大的内容区域内平移的组件。**滚动条通常与文本框&#xff08;Text&#xff09;、列表框&#xff0…

cspccf备考

13年12月CCF计算机软件能力认证 3192. 出现次数最多的数 给定 n n n个正整数&#xff0c;找出它们中出现次数最多的数。 如果这样的数有多个&#xff0c;请输出其中最小的一个。 输入格式 输入的第一行只有一个正整数 n n n,表示数字的个数。 输入的第二行有 n n n个整数 …

什么是基于风险的漏洞管理RBVM,及其优势

文章目录 一、什么是漏洞管理二、什么是基于风险的漏洞管理RBVM三、RBVM的基本流程四、RBVM的特点和优势 一、什么是漏洞管理 安全漏洞是网络或网络资产的结构、功能或实现中的任何缺陷或弱点&#xff0c;黑客可以利用这些缺陷或弱点发起网络攻击&#xff0c;获得对系统或数据…

FFMpeg解复用流程

文章目录 解复用流程图复用器与解复用器小结 解复用流程图 流程图&#xff0c;如上图所示。 复用器与解复用器 复用器&#xff0c;就是视频流&#xff0c;音频流&#xff0c;字幕流&#xff0c;其他成分&#xff0c;按照一定规则组合成视频文件&#xff0c;视频文件可以是mp4…

c语言利用openssl实现简单客户端和服务端(观察记录层最大长度)

文章目录 前言一、客户端实现二、服务端实现总结 前言 本文是使用openssl111w实现的简单客户端和服务端&#xff0c;主要用于观察openssl一个记录层数据包的大小。 一、客户端实现 #include <stdio.h> #include <stdlib.h> #include <string.h> #inc…

搜维尔科技:Movella旗下的Xsens在人形机器人开发中得到广泛应用

人形机器人的发展正在全球范围内受到广泛关注。作为机器人领域的重要分支&#xff0c;人形机器人因其具备高度仿真的外观和动作&#xff0c;以及更贴近人类的行为模式&#xff0c;有望逐渐成为人们日常生活和工业生产中的得力助手。在中国&#xff0c;这一领域的发展尤为引人注…

湘江早报专访惟客数据李柯辰:湖南伢子返湘玩转“AI+金融”

来源 |《湘江早报》 记者 | 黄荣佳 ​ 随着数字化浪潮的到来&#xff0c;AI的风吹遍了各行各业&#xff0c;金融作为对新兴技术最敏感的行业&#xff0c;前沿技术的赋能&#xff0c;让金融科技成为行业发展的“新赛点”。作为一家以大数据和AI人工智能技术驱动的新一代数字化…

MYSQL六、存储引擎的认识

一、存储引擎 1、MySQL体系结构 连接层&#xff1a;最上层是一些客户端和链接服务&#xff0c;包含本地sock 通信和大多数基于客户端/服务端工具实现的类似于TCP/IP的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概念&#xff0c;为…

使用大模型进行时间序列预测

今天想聊聊这周一篇关于使用语言模型进行时间序列预测的工作&#xff0c;这个工作的主要亮点有四个: 首先提出的Chronos框架将时间序列通过缩放和量化转换为token序列&#xff0c;从而可以直接使用语言模型架构(如T5, GPT-2等)来建模时间序列&#xff0c;不需要对模型架构做任…